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

MySQL에서 공백이 포함되지 않은 필드 값만 조회하는 방법 (NOT LIKE 활용)

MySQL에서 특정 컬럼의 값에 공백(빈 칸)이 포함되지 않은 레코드만 조회하고 싶다면 NOT LIKE 연산자를 사용하면 됩니다. 이 글에서는 예제 테이블을 만들고, 공백이 없는 데이터만 추출하는 과정을 단계별로 살펴보겠습니다.

1. 예제 테이블 생성

먼저 실습에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
    (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentFullName varchar(40)
    );
Query OK, 0 rows affected (0.66 sec)

2. 샘플 데이터 삽입

INSERT 문을 사용해 학생 이름 데이터를 입력합니다. 일부 값에는 공백이 있고, 일부 값에는 공백이 없도록 구성했습니다.

mysql> insert into DemoTable(StudentFullName) values('JohnSmith');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(StudentFullName) values('John Doe');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable(StudentFullName) values('Adam Smith');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(StudentFullName) values('CarolTaylor');
Query OK, 1 row affected (0.19 sec)

3. 전체 데이터 확인

SELECT 문으로 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable;

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

+----+-----------------+
| Id | StudentFullName |
+----+-----------------+
| 1  | JohnSmith       |
| 2  | John Doe        |
| 3  | Adam Smith      |
| 4  | CarolTaylor     |
+----+-----------------+
4 rows in set (0.00 sec)

4. 공백이 포함되지 않은 값만 조회하기

핵심은 NOT LIKE '% %' 조건입니다. 와일드카드 사이에 공백 하나를 넣어 "공백을 포함하는 값"을 제외시키는 원리입니다.

mysql> select *from DemoTable where StudentFullName NOT LIKE '% %';

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

+----+-----------------+
| Id | StudentFullName |
+----+-----------------+
| 1  | JohnSmith       |
| 4  | CarolTaylor     |
+----+-----------------+
2 rows in set (0.18 sec)

결과 분석

위 결과를 보면 'John Doe'와 'Adam Smith'처럼 이름과 성 사이에 공백이 있는 레코드는 제외되고, 'JohnSmith'와 'CarolTaylor'처럼 공백 없이 붙여 쓴 이름만 조회된 것을 확인할 수 있습니다.

NOT LIKE '% %' 패턴에서 %는 임의의 문자열을 의미하므로, 문자열 중간 어디에든 공백이 하나라도 존재하면 해당 레코드는 결과에서 제외됩니다. 반대로 공백이 포함된 값만 조회하고 싶다면 LIKE '% %'를 사용하면 됩니다.