REGEXP_REPLACE로 여러개의 공백 한개로 만들기
·
조회수 12
여러개의 공백을 한개의 공백으로 만들고 싶을때가 있을때 MariaDB 10.0.5 , Mysql v8.0 버전 이상부터는 REPLACE함수를 이용하기보다 REGEXP_REPLACE함수를 이용하면 간단히 처리를 할 수가 있습니다. 우선 REGEXP_REPLACE함수가 지원되는지부터 확인을 해야 하는데 MariaDB나 Mysql 공통으로 아래 명령어를 수행하면 버전 정보를 확인할 수 있습니다.
SELECT VERSION();
먼저 문자열에 적용하는 예제입니다.'서울특별시 송파구 송이로 42 '라는 중간과 끝부분에 공백이 있고 공백도 한개도 아니고 여러개인 주소입니다.
SELECT REGEXP_REPLACE('서울특별시 송파구 송이로 42 ', '[[:space:]]+', ' ') AS sample;
결과물
sample
-------------------------
서울특별시 송파구 송이로 42
-------------------------
앞뒤는 물론 중간 그리고 공백의 갯수과 상관없이 한개만 남기게 됩니다. 컬럼에 적용하는 예제입니다.test라는 테이블에서 juso컬럼의 공백을 한개만 남기기
SELECT REGEXP_REPLACE(juso, '[[:space:]]+', ' ') AS sample FROM test;
UPDATE를 이용해 컬럼을 수정하는 예제입니다.test라는 테이블에서 juso컬럼의 공백을 한개만 남기도록 수정
UPDATE test SET juso= REGEXP_REPLACE(juso, '[[:space:]]+', ' ');