8강 - 패턴매칭에 의한 검색
참조 : MySQL :: MySQL 8.0 Reference Manual :: 3.3.4.7 Pattern Matching
=
는 완전 일치하는 데이터 값을 비교%
와 _
)로 검색%
를 이용한 임의의 문자열 패턴 정의_
를 이용한 임의의 문자 하나 패턴 정의mysql> select * from test1(테이블명) where text(컬럼명) like **'_____'**
mysql> select * from test1(테이블명) where text(컬럼명) like **'keyword'**
mysql> select * from test1(테이블명) where text(컬럼명) like **'%keyword'**
mysql> select * from test1(테이블명) where text(컬럼명) like **'keyword%'**
mysql> select * from test1(테이블명) where text(컬럼명) like **'%keyword%'**
%
,_
를 함께 이용한 임의의 문자열 패턴 정의mysql> select * from test1(테이블명) where text(컬럼명) like **'_keyword%'**
‘’
, %
, _
의 이스케이프 (SQL문 전체 적용)‘’
(따옴표)안에 작성 - 기본적인 SQL문법‘
(따옴표)하나가 들어가야 할 경우 ‘’
이나 \’
로 작성 (정상 작동)%
나 _
가 들어가야 할 경우 \%
와 \_
로 작성\
없이 작성해도 작동함💡
--partial--revokes[={OFF|ON}]
OFF
이스케이프를 사용하지 않을 경우
ON
이스케이프를 사용해야 할 경우
Mysql Server System Variables : https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_partial_revokes
mysql> ··· like '나는 ''SQL_첫걸음''를 100% 이해한다..'
mysql> select * from test1(테이블명) where regexp_like(**컬럼명**,'정규식');
(컬럼명, '조건', 'i');
로 작성(컬럼명, '조건'|'조건');
으로 여러 조건으로 검색 가능mysql> select * from test1;
+----+----------------------------------------------+
| id | text |
+----+----------------------------------------------+
| 1 | 서울시 강남구 |
| 2 | 대전시 유성구 |
| 3 | 서울시 강동구 |
| 4 | 미국 서울시 |
| 5 | 서울시 강서구 |
| 6 | 부산시 연제구 |
| 7 | 대한민국 서울시 |
| 8 | 부산시 강서구 |
| 9 | 서울시 강서구 |
| 10 | 대한민국 서울시 강남구 언주로 |
| 11 | 시청 |
| 12 | 나는 'SQL 첫걸음'를 100% 이해한다. |
| 13 | 1 '2' 3 |
+----+----------------------------------------------+
13 rows in set (0.00 sec)
mysql> select * from test1(테이블명) where regexp_like(text,'구$');
+----+------------------+
| id | text |
+----+------------------+
| 1 | 서울시 강남구 |
| 2 | 대전시 유성구 |
| 3 | 서울시 강동구 |
| 5 | 서울시 강서구 |
| 6 | 부산시 연제구 |
| 8 | 부산시 강서구 |
| 9 | 서울시 강서구 |
+----+------------------+
7 rows in set (0.00 sec)
-------------------------------------------------------------------
mysql> select * from test1 where regexp_like(text,'^강');
+----+---------------------+
| id | text |
+----+---------------------+
| 1 | 서울시 강남구 |
| 3 | 서울시 강동구 |
| 5 | 서울시 강서구 |
| 9 | 서울시 강서구 |
+----+---------------------+
4 rows in set (0.00 sec)
-------------------------------------------------------------------
mysql> select * from test1 where regexp_like(text,'강서|대전');
+----+---------------------+
| id | text |
+----+---------------------+
| 2 | 대전시 유성구 |
| 5 | 서울시 강서구 |
| 8 | 부산시 강서구 |
| 9 | 서울시 강서구 |
+----+---------------------+
4 rows in set (0.00 sec)