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

MySQL에서 VARCHAR 컬럼에 백분율(%) 기호가 포함되어 있는지 확인하는 방법

MySQL에서 VARCHAR 타입의 컬럼 값에 백분율 기호(%)가 포함되어 있는지 확인하려면 LIKE 연산자와 함께 ESCAPE 절을 사용하면 됩니다. 일반적으로 LIKE 패턴에서 %는 와일드카드로 해석되기 때문에, 이스케이프 문자를 지정하여 리터럴한 % 기호 자체를 검색해야 합니다.

기본 문법

SELECT * FROM yourTableName WHERE yourColumnName like '%|%%' escape '|';

위 문법에서 |(파이프) 문자가 이스케이프 문자로 지정되었으며, |%는 와일드카드가 아닌 실제 % 문자를 의미합니다.

예제 테이블 생성

문법을 실제로 이해하기 위해 예제 테이블을 먼저 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table FindPercentInVarcharDemo
    -> (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> Words varchar(30),
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (0.51 sec)

% 기호가 포함된 데이터 삽입

INSERT 명령을 사용하여 % 기호가 들어간 레코드와 그렇지 않은 레코드를 함께 입력합니다.

mysql> insert into FindPercentInVarcharDemo(Words) values('This is a My%SQL Program');
Query OK, 1 row affected (0.19 sec)

mysql> insert into FindPercentInVarcharDemo(Words) values('Java is an object oriented');
Query OK, 1 row affected (0.19 sec)

mysql> insert into FindPercentInVarcharDemo(Words) values('C# is also an object%oriented');
Query OK, 1 row affected (0.57 sec)

전체 데이터 조회

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

mysql> select *from FindPercentInVarcharDemo;

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

+----+-------------------------------+
| Id | Words                         |
+----+-------------------------------+
| 1  | This is a My%SQL Program      |
| 2  | Java is an object oriented    |
| 4  | C# is also an object%oriented |
+----+-------------------------------+
3 rows in set (0.00 sec)

% 기호 검색 쿼리 실행

이제 ESCAPE 절을 활용하여 Words 컬럼에 % 기호가 포함된 행만 조회하는 쿼리를 실행합니다.

mysql> select *from FindPercentInVarcharDemo where Words like '%|%%' escape '|';

결과를 보면 % 기호가 포함된 레코드만 정확히 필터링되어 출력됩니다.

+----+-------------------------------+
| Id | Words                         |
+----+-------------------------------+
| 1  | This is a My%SQL Program      |
| 4  | C# is also an object%oriented |
+----+-------------------------------+
2 rows in set (0.00 sec)

정리

LIKE 패턴 내에서 % 문자를 일반 문자로 취급하려면 반드시 ESCAPE 절로 이스케이프 문자를 지정해야 합니다. 위 예제처럼 '%|%%' 패턴과 escape '|' 조합을 사용하면 MySQL에서도 손쉽게 특정 컬럼에 % 기호가 포함된 데이터를 찾을 수 있습니다.