본문 바로가기
MySQL MariaDB/SQL 문법

MySQL / MariaDB like와 in을 동시 사용 => regexp

by 쑤- IT, MySQL, MariaDB, DBeaver 2021. 12. 9.

MySQL / MariaDB_like와 in을 동시 사용 => regexp

 

regexp?

정규식을 이용한 검색 방식이다.
like보다 좀 더 다양한 검색을 할 수 있도록 도움을 준다.
정규표현식을 활용하여 기본 연산자보다 복잡한 문자열 조건보다 간단하게 표현하여 데이터를 검색할 수 있다.

 

<  regexp 를 이용한 예제 >

 

select * from tabA where col1 regexp '가'

= select * from tabA where col1  like '%가%'

 

- tabA 에서 col1 컬럼에 '가' 포함된  row 출력

 

 

select * from tabA  where col1  regexp  '대한|민국|만세'

= select * from tabA  where col1  like '%대한%' or name like '%민국%' or name like '%만세%'

 

- tabA 에서 col1 컬럼에 '대한' or '민국' or  '만세' 포함된  row 출력

 

 

select * from tabA  where col1  regexp '[가_힣]'

 

- tabA 에서 col1 컬럼에 '한글이 포함된'  row 출력

 

 

select * from tabA  where col1  regexp '^[가_힣]+$'

 

- tabA 에서 col1 컬럼이 '한글만' 으로 구성된  row 출력

 

 

select * from tabA  where col1  regexp '^[0_9]+$'

select * from tabA  where col1  regexp '^[[:digit:]]+$'

 

- tabA 에서 col1 컬럼이 '숫자만' 으로 구성된  row 출력

 

select * from tabA  where col1 NOT regexp '^[0_9]+$'

select * from tabA  where col1 NOT regexp '^[[:digit:]]+$'

 

- tabA 에서 col1 컬럼이 '숫자만' 으로 구성된 row 를 제외 하고 출력

 

 

select * from tabA where col1 regexp'^...$'; 

 

- tabA 에서 col1 컬럼이  3글자인 row 출력

 

 

select * from tabA where col1 regexp '^고'; 

 

- tabA 에서 col1 컬럼이  첫글자가 '고' 로 시작되는  row 출력

 

 

select * from tabA where col1 regexp '[0-9]+';

 

- tabA 에서 col1 컬럼이  숫자와 문자를 포함하는  row 출력

 

 

select * from tabA where col1 regexp '('^.b...$');

= select * from tabA where CHAR_LENGTH(col1) = 7 AND SUBSTRING(data, 2, 1) = 'b';

 

- tabA 에서 col1 컬럼 길이 5글자인 문자열중 2번째 자리가 'b' 인 row 출력

 

 

도움 : https://dev.mysql.com/doc/refman/8.0/en/regexp.html

댓글