여러 LIKE 조건으로 테이블 목록 조회하기
MySQL에서 SHOW TABLES 문을 사용할 때 여러 개의 LIKE 패턴에 일치하는 테이블만 조회하고 싶다면, WHERE 절과 OR 연산자를 함께 사용하면 됩니다. 이 방법을 활용하면 원하는 이름 패턴을 가진 테이블들을 한 번의 쿼리로 손쉽게 필터링할 수 있습니다.
기본 문법
SHOW TABLES FROM yourDatabaseName
WHERE tables_in_yourDatabaseName LIKE '%anyTableName%'
OR tables_in_yourDatabaseName LIKE '%anyTableName2%'
OR tables_in_yourDatabaseName LIKE '%anyTableName3%'
.
.
.
OR tables_in_yourDatabaseName LIKE '%anyTableNameN%';
위 문법에서 각 OR 조건은 데이터베이스 내의 테이블 이름(tables_in_데이터베이스명)과 비교되며, 하나라도 일치하면 해당 테이블이 결과에 포함됩니다.
실전 예제
'test' 데이터베이스를 기준으로, 'userrole', 'view_student', 'wholewordmatchdemo' 세 가지 이름 패턴 중 하나라도 포함된 테이블을 조회해 보겠습니다.
mysql> SHOW TABLES FROM test
-> WHERE tables_in_test LIKE '%userrole%'
-> OR tables_in_test LIKE '%view_student%'
-> OR tables_in_test LIKE '%wholewordmatchdemo%';
실행 결과
+--------------------+
| Tables_in_test |
+--------------------+
| userrole |
| view_student |
| wholewordmatchdemo |
+--------------------+
3 rows in set (0.01 sec)
결과를 보면 지정한 세 가지 LIKE 패턴에 해당하는 테이블 3개가 정상적으로 출력된 것을 확인할 수 있습니다. 이처럼 WHERE 절에 OR 연산자를 반복해서 추가하기만 하면, 원하는 만큼 많은 테이블 이름 패턴을 동시에 검색할 수 있습니다.