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
'MySQL MariaDB > SQL 문법' 카테고리의 다른 글
MySQL/MariaDB rank 함수. 랭킹(순위) 구하기. (3) | 2024.07.15 |
---|---|
MySQL / MariaDB case. when. then. 단일/다중 조건문. (0) | 2022.01.19 |
MySQL/MariaDB 세션 확인 / Session kill (0) | 2021.12.17 |
MariaDB/MySQL 정규표현식 (Regular Expression) (0) | 2021.12.09 |
MySQL/ MariaDB COALESCE: 첫 null 아닌값 리턴. (0) | 2021.12.07 |
MySQL/ MariaDB 현재날짜, 현재시간 반환 (0) | 2021.11.19 |
MySQL/MariaDB. 날짜 Type 데이터 -> 문자열로 변환 (0) | 2021.11.18 |
MySQL / MariaDB 날자,시간 차이 계산 / 시간표현 변경 (0) | 2021.11.17 |
댓글