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
반응형
'DB > MySQL' 카테고리의 다른 글
[MySQL] LEAVE , 프로시저 중에 중단하기 (0) | 2021.04.27 |
---|---|
[MySQL] LENGTH, CHAR_LENGTH 문자열 길이 확인 (0) | 2021.04.27 |
[MySQL] CHECK문을 이용한 제약 조건 설정 (0) | 2021.04.23 |
[MySQL] Cursor (0) | 2021.04.20 |
[MySQL] 중복 제거문 DISTINCT, GROUP BY (0) | 2021.04.20 |