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:]]+', ' ');

"술은 백약의 장. - 한국 속담"

- 술 -

북마크목록