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

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;

 

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

Database

번호 제목 글쓴이 날짜 조회수
6 MariaDB 메모리 누수 잡기 ( Memory Leak Issue ) - jemalloc 관리자 06-19 65
5 [MySQL] REGEXP_REPLACE 한글, 영문, 특수문자, 숫자 제거 관리자 01-19 607
4 [mysql]innodb 메모리별 설정값 예시 관리자 10-13 592
3 MySQL 중복 레코드 관리 방법 관리자 09-10 381
2 sleep session 정리하기 관리자 07-31 400
1 MYSQL 8 에서 PASSWORD 함수 사용하기 관리자 04-18 893