[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

번호 제목 글쓴이 날짜 조회수
10 [Linux] CentOS 7 MariaDB 10.5 버전으로 업데이트 하는 방법 관리자 11-14 58
9 MySQL phpMyAdmin 에서 작업할 DB의 모든 MyISAM 테이블을 InnoDB 로 바꾸는 방법 관리자 11-04 64
8 INSERT - 중복되는 데이터는 넣지 않기 관리자 10-24 65
7 mysql 한글, 영문, 숫자 순으로 정렬 관리자 07-13 190
6 MariaDB 메모리 누수 잡기 ( Memory Leak Issue ) - jemalloc 관리자 06-19 772
5 [MySQL] REGEXP_REPLACE 한글, 영문, 특수문자, 숫자 제거 관리자 01-19 1,279
4 [mysql]innodb 메모리별 설정값 예시 관리자 10-13 888
3 MySQL 중복 레코드 관리 방법 관리자 09-10 569
2 sleep session 정리하기 관리자 07-31 500
1 MYSQL 8 에서 PASSWORD 함수 사용하기 관리자 04-18 1,168