DB/MySQL

[MySQL] REGEXP_REPLACE 한글, 영문, 특수문자, 숫자 제거

야곰야곰+책벌레 2021. 4. 27. 14:18
728x90
반응형

REGEXP_REPLACE는 MySQL 8.0 이상부터 사용 가능하다.

정규식을 통해 한글, 영문, 특수문자, 숫자를 제거하는 방법은 아래와 같다.

SELECT REGEXP_REPLACE(대상 문자열, 대상 문자열, 변경 문자열) AS 닉네임;
-- 한글제거
SELECT REGEXP_REPLACE('abcd(1234)가나다라', '[가-힣]', '') AS nickname;
-- 숫자제거
SELECT REGEXP_REPLACE('abcd(1234)가나다라', '[0-9]', '') AS nickname;
-- 영문제거
SELECT REGEXP_REPLACE('abcd(1234)가나다라', '[a-z]', '') AS nickname;
-- 특수문자제거 (특정문자)
SELECT REGEXP_REPLACE('abcd(1234)가나다라', '[`~!#$%^&*|\\\'\";:\/?]', '') AS nickname;
-- 특수문자제거 (전체)
SELECT REGEXP_REPLACE('abcd(1234)가나다라', '[^[:alnum:][:space:]]+', '') AS nickname;

중복해서 제거하려면 반복해서 작업하면 된다.

-- machID에서 한글 제거해서 machID에 저장
SELECT REGEXP_REPLACE(machID, '[가-힣()]','') INTO machID;
-- machID에서 영문 제거해서 machID에 저장
SELECT REGEXP_REPLACE(machID, '[a-z]','') INTO machID;
-- machID에서 특수문자 제거해서 machID에 저장
SELECT REGEXP_REPLACE(machID, '[^[:alnum:][:space:]]','') INTO machID;

 

728x90
반응형