MySQL에서 특정 열 이름으로 테이블 검색하기
MySQL에서 열 이름을 기준으로 테이블을 찾으려면 information_schema.columns 뷰를 활용하면 됩니다. 이 시스템 뷰에는 데이터베이스 내 모든 테이블의 열 정보가 저장되어 있어, LIKE 연산자와 함께 사용하면 원하는 열 이름을 가진 테이블을 손쉽게 조회할 수 있습니다.
기본 문법
select distinct table_name
from information_schema.columns
where column_name like '%yourSearchValue%'
and table_schema=database();
위 쿼리는 현재 접속 중인 데이터베이스(table_schema = database())에서 지정한 검색어가 포함된 열 이름을 가진 테이블 이름을 중복 없이(distinct) 반환합니다. 검색어 부분에는 대소문자 구분 없이 부분 일치 검색이 가능합니다.
실제 적용 예시
이제 위 문법을 실제로 적용해 보겠습니다. 여러 테이블 중에서 열 이름에 "Client"라는 단어가 포함된 테이블만 찾고 싶다면 다음과 같이 작성할 수 있습니다.
mysql> select distinct table_name
from information_schema.columns
where column_name like '%Client%'
and table_schema=database();
쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+----------------+
| table_name |
+----------------+
| demotable449 |
| demotable450 |
| demotable461 |
| demotable517 |
| demotable529 |
| demotable534 |
| demotable537 |
| demotable543 |
| demotable547 |
+----------------+
9 rows in set (1.19 sec)
결과에서 확인할 수 있듯이, 현재 데이터베이스에는 "Client"라는 열 이름을 가진 테이블이 총 9개 존재합니다.
결과 검증하기
조회된 테이블 중 하나를 선택하여 DESCRIBE 명령으로 테이블 구조를 확인하면, 실제로 "Client"라는 이름의 열이 포함되어 있는지 검증할 수 있습니다.

참고 팁
부분 일치가 아닌 정확히 일치하는 열 이름을 찾고 싶다면 LIKE '%Client%' 대신 = 'Client' 조건을 사용하면 됩니다. 또한 특정 데이터베이스를 직접 지정하고 싶다면 table_schema='데이터베이스명' 형태로 조건을 변경하면 됩니다.