mysql 정규표현식은 크게 다음과 같은 형태로 구성되어있다.

 

^ 시작
$ 끝
| or와 비슷
[abcd] 해당문자열들이 들어가있는지
[-] 검색하려는 문자열의 범위를 지정해줌

 

-- '%field%'와 똑같은 구문 field라는 값이 들어간 값을 찾는다.
SELECT *
FROM customers
WHERE last_name REGEXP 'field';

-- last_name의 값이 field로 끝나는 값을 찾는다.
SELECT *
FROM customers
WHERE last_name REGEXP 'field$';

-- last_name의 값이 field로 시작하는 값을 찾는다.
SELECT *
FROM customers
WHERE last_name REGEXP '^field';

-- '%field%' or '%mac%' or '%rose%'와 똑같은 구문.
SELECT *
FROM customers
WHERE last_name REGEXP 'field|mac|rose';

-- 위 구문들과 합쳐서 사용가능
SELECT *
FROM customers
WHERE last_name REGEXP '^field|mac|rose';

-- last_name 필드안에 값들중에 ge, ie, me가 들어가는값들을 검색한다.
SELECT *
FROM customers
WHERE last_name REGEXP '[gim]e';

-- last_name 필드안에 값들중에 ef, em, eq가 들어가는값들을 검색한다.
SELECT *
FROM customers
WHERE last_name REGEXP 'e[fmq]';

-- last_name 필드안에 값들중에 ae,be,ce,de,fe,ge,he가 들어간 값들을 검색한다.
-- [-]값으로 범위를 지정해줌
SELECT *
FROM customers
WHERE last_name REGEXP '[a-h]e';

정규식 사용에 익숙해지면 여러가지 검색조건을 훨씬 다양하고 정확하게 사용 할수 있게된다.

'SQL > mysql' 카테고리의 다른 글

조인 (JOIN @INNER JOIN2)  (0) 2021.02.07
정렬 및 검색 조건 (IS NULL, ORDER BY, LIMIT)  (0) 2021.02.07
WITH ROLLUP  (0) 2017.10.03
테이블 복사 (TABLE COPY)  (0) 2017.10.03
조인 (JOIN @INNER JOIN)  (0) 2017.09.29