2016-09-12 2 views
1

데이터베이스의 모든 테이블에 대해 세 개의 열 이름 인 gps time, shape, id이있는 테이블 이름을 반환하기 위해 단일 쿼리를 작성하려고합니다. 답변을 찾고 있었지만 모든 것이 하나의 열 이름에서만 작동합니다. 내가 다른 "AND COLUMN_NAME = 'column_name2'"를 추가 할 때모든 테이블에서 여러 열 이름을 검색하고 테이블 이름을 반환하십시오.

SELECT table_name 
FROM information_schema.COLUMNS 
WHERE 
TABLE_SCHEMA = 'db_name' 
AND COLUMN_NAME = 'column_name' 

그것은

0이 사전에 어떤 도움을 주셔서 감사합니다 반환합니다.

답변

1
SELECT table_name 
FROM information_schema.COLUMNS 
WHERE 
TABLE_SCHEMA = 'db_name' 
AND COLUMN_NAME IN ('column_name', 'column_name2', 'column_name3') 
GROUP BY table_name 
HAVING COUNT(*) = 3 
+0

이것은 굉장합니다 :) 당신, 친절한 사람 감사합니다! – Marox

+0

컬렉션을 분리하고 여러 개의 "AND"문을 만들 수 있습니까? – Marox

+0

아니요,'information_schema.COLUMNS'는'table_name, column_name'과 같은 데이터를 저장하기 때문에 3 열에 대해 3 행을 의미합니다. 그래서'group by '을 사용하여 끝에 행을 병합합니다. 당신은'select table_name, COLUMN_NAME from information_schema.COLUMNS'에 의해 그것을 검사 할 수있다. – Shaharyar

관련 문제