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)