Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 특정 열 이름이 포함된 테이블을 찾는 방법

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"라는 이름의 열이 포함되어 있는지 검증할 수 있습니다.

MySQL에서 특정 열 이름이 포함된 테이블을 찾는 방법

참고 팁

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