2012-05-28 2 views
2

나는 하나의 쿼리를 사용하여보기없이 테이블 이름의 범위를 선택해야 WHERE :는 LIKE & 모두를 사용하여 전체 테이블을 표시 절

예 :

SHOW FULL TABLES LIKE '%table%' WHERE "Table_type"<>'VIEW' 
MySQL은 이러한 두 연산자를 사용하는 것을 허용하지 않습니다

하나의 쿼리와 같은 "테이블 이름"그냥 간단한 열 이름을 사용하는 대신 DB 이름을 포함하는 Tables_in_(mydbname) 같은 바보 같은 열 이름을 사용하고 있습니다. 문제는 내가 DB 이름을 모르는, 그래서 나는 다음과 같은 쿼리를 사용할 수 없습니다

SHOW FULL TABLES WHERE "Table_type"<>'VIEW' AND "Tables_in_????" LIKE '%table%' 

같은 이름 대신 번호를 사용하는 것이 좋을 것을 :

SHOW FULL TABLES WHERE COLUMN(1) LIKE '%table%' AND COLUMN(2) <>'VIEW' 

하지만, 그러한 기능은 없습니다.

이 테이블에 대한 액세스가 호스팅 제공 업체 (또는 내가 잘못 되었나요?)로 제한 될 수 있고 내 응용 프로그램이 광범위한 배포 용이므로 INFORMATION_SCHEMA를 사용할 수 없습니다.

나에게 조언 해 주시겠습니까?

답변

3

INFORMATION_SCHEMA을 쿼리하십시오. 특히 TABLESCOLUMNS 테이블이 재미 있습니다.

예 :

SELECT * 
    FROM INFORMATION_SCHEMA.TABLES t 
    JOIN INFORMATION_SCHEMA.COLUMNS c 
    ON t.TABLE_CATALOG = c.TABLE_CATALOG 
    AND t.TABLE_SCHEMA = c.TABLE_SCHEMA 
    AND t.TABLE_NAME = c.TABLE_NAME 
WHERE [some field] LIKE '%some_value%' 
    AND ... 
+0

가 user1420069 @ : 당신은 그것에 정보의 조각을 추가하고, 다음 질문을 편집 할 수 있습니다 ... –

+0

내가 여기 초보자입니다 감사 – Mansoor