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

MySQL에서 NOT LIKE의 올바른 사용법과 실전 예제

MySQL NOT LIKE 구문이란?

MySQL에서 특정 패턴을 포함하지 않는 데이터를 조회할 때는 NOT LIKE 연산자를 사용합니다. 특히 테이블 목록을 필터링할 때 유용하게 활용할 수 있습니다.

MySQL에서 NOT LIKE의 올바른 기본 구문은 다음과 같습니다:

SHOW TABLES WHERE `TABLES_IN_데이터베이스명` NOT LIKE '테이블명%';

NOT LIKE 구문 이해하기

위 구문을 실제로 이해하기 위해 여러 개의 테이블을 가진 SAMPLE 데이터베이스를 사용해 보겠습니다. 먼저 해당 데이터베이스의 전체 테이블 목록을 확인한 후, NOT LIKE 구문을 적용해 결과를 비교해 보겠습니다.

1단계: 데이터베이스 선택

먼저 USE 명령어를 사용해 작업 대상 데이터베이스를 SAMPLE로 변경합니다:

mysql> USE SAMPLE;
Database changed

2단계: 전체 테이블 목록 조회

데이터베이스에 있는 모든 테이블을 조회하는 쿼리는 다음과 같습니다:

mysql> show tables;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다:

+--------------------------+
| Tables_in_sample         |
+--------------------------+
| blobsizedemo             |
| insert_prevent           |
| insertrecord_selecttable |
| insertrecordprevent      |
| mytable                  |
| newlinedemo              |
| notequaloperator         |
| sumofeverydistinct       |
| yourtable                |
+--------------------------+
9 rows in set (0.00 sec)

현재 SAMPLE 데이터베이스에는 총 9개의 테이블이 존재하는 것을 확인할 수 있습니다.

3단계: NOT LIKE로 테이블 필터링

이제 앞서 소개한 NOT LIKE 구문을 활용하여, 테이블 이름에 "insert"라는 텍스트가 포함되지 않은 테이블만 조회해 보겠습니다. 쿼리는 다음과 같습니다:

mysql> show tables where `TABLES_IN_sample` NOT LIKE 'insert%';

실행 결과는 다음과 같습니다:

+--------------------+
| Tables_in_sample   |
+--------------------+
| blobsizedemo       |
| mytable            |
| newlinedemo        |
| notequaloperator   |
| sumofeverydistinct |
| yourtable          |
+--------------------+
6 rows in set (0.00 sec)

결과 분석 및 핵심 정리

NOT LIKE 조건을 적용한 결과, 원래 9개였던 테이블 중 "insert"로 시작하는 3개의 테이블(insert_prevent, insertrecord_selecttable, insertrecordprevent)이 제외된 6개의 테이블만 출력된 것을 확인할 수 있습니다.

여기서 주목할 점은 백틱(`)으로 감싸인 TABLES_IN_sample 부분입니다. SHOW TABLES 명령 실행 시 생성되는 컬럼명은 데이터베이스 이름에 따라 달라지므로, 반드시 자신의 데이터베이스 이름에 맞게 컬럼명을 지정해야 한다는 점을 기억하세요. 또한 NOT LIKE 뒤에 오는 패턴 문자열은 작은따옴표(')로 감싸야 하며, %는 임의의 문자열을 의미하는 와일드카드입니다.