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

MySQL에서 구두점이 포함된 데이터도 쿼리로 일치시키는 방법

MySQL에서 구두점이 있어도 쿼리 일치시키기

데이터에 쉼표(,)나 느낌표(!) 같은 구두점이 포함되어 있어도 검색 결과를 정확히 찾고 싶다면 MySQL의 LIKE 연산자를 사용하면 됩니다. LIKE 연산자와 와일드카드(%)를 함께 활용하면 구두점 여부와 관계없이 원하는 문자열을 손쉽게 매칭할 수 있습니다.

예제를 통해 실제 동작 방식을 살펴보겠습니다.

1. 테이블 생성하기

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

mysql> create table DemoTable
-> (
-> Comments varchar(20)
-> );
Query OK, 0 rows affected (1.10 sec)

2. 데이터 삽입하기

INSERT 명령을 사용해 구두점이 포함된 레코드들을 추가합니다.

mysql> insert into DemoTable values('Good,Morning');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Nice');
Query OK, 1 row affected (0.51 sec)
mysql> insert into DemoTable values('good,bye!');
Query OK, 1 row affected (0.11 sec)

3. 전체 레코드 확인하기

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

mysql> select *from DemoTable;

위 쿼리는 다음과 같은 결과를 출력합니다.

+--------------+
| Comments |
+--------------+
| Good,Morning |
| Nice |
| good,bye! |
+--------------+
3 rows in set (0.00 sec)

4. LIKE 연산자로 구두점 무시하고 검색하기

이제 구두점이 포함되어 있어도 'good'이라는 단어가 들어간 모든 레코드를 찾는 쿼리입니다. 와일드카드 %를 앞뒤로 붙여주면 문자열 중간에 있는 구두점과 상관없이 일치하는 데이터를 반환합니다.

mysql> select *from DemoTable where Comments like '%good%';

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

+--------------+
| Comments |
+--------------+
| Good,Morning |
| good,bye! |
+--------------+
2 rows in set (0.00 sec)

결과를 보면 'Good,Morning'과 'good,bye!' 두 개의 레코드가 정상적으로 조회된 것을 확인할 수 있습니다. 이처럼 %good% 패턴을 사용하면 대소문자 구분 없이(MySQL 기본 콜레이션 기준) 구두점이 포함된 문자열도 문제없이 매칭됩니다.