Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL REPLACE() 함수로 문자 사이 공백 제거하는 UPDATE 쿼리 완벽 가이드

REPLACE() 함수로 문자열 사이의 공백 제거하기

데이터베이스를 운영하다 보면 문자열 사이에 불필요한 공백이 포함된 데이터를 마주치는 경우가 흔합니다. 이럴 때 MySQL의 REPLACE() 함수를 사용하면 손쉽게 공백을 제거할 수 있습니다.

기본 문법

공백을 제거하는 UPDATE 쿼리의 기본 문법은 다음과 같습니다.

UPDATE yourTableName SET yourColumnName = REPLACE(yourColumnName, ' ', '');

위 쿼리는 지정한 컬럼의 모든 행에서 공백(' ')을 찾아 빈 문자열('')로 치환합니다.

예제 테이블 생성

실제 동작 과정을 이해하기 위해 예제 테이블을 먼저 생성해 보겠습니다.

mysql> create table removeSpaceDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> UserId varchar(20),
-> UserName varchar(10),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.81 sec)

샘플 데이터 삽입

INSERT 명령어를 사용해 공백이 포함된 데이터를 입력합니다.

mysql> insert into removeSpaceDemo(UserId,UserName) values(' John 12 67 ','John');
Query OK, 1 row affected (0.33 sec)
mysql> insert into removeSpaceDemo(UserId,UserName) values('Carol 23 ','Carol');
Query OK, 1 row affected (0.34 sec)

현재 데이터 확인

SELECT 문으로 테이블의 전체 레코드를 조회합니다.

mysql> select *from removeSpaceDemo;

실행 결과는 다음과 같습니다.

+----+------------------+----------+
| Id | UserId | UserName |
+----+------------------+----------+
| 1 | John 12 67 | John |
| 2 | Carol 23 | Carol |
+----+------------------+----------+
2 rows in set (0.00 sec)

출력 결과를 보면 UserId 컬럼의 값들 사이에 공백이 포함되어 있는 것을 확인할 수 있습니다.

REPLACE() 함수로 공백 제거 실행

이제 UPDATE 쿼리와 REPLACE() 함수를 함께 사용해 공백을 제거합니다.

mysql> update removeSpaceDemo set UserId=REPLACE(UserId,' ','');
Query OK, 2 rows affected (0.63 sec)
Rows matched: 2 Changed: 2 Warnings:

최종 결과 확인

변경된 데이터를 다시 조회해 보겠습니다.

mysql> select *from removeSpaceDemo;

실행 결과는 다음과 같습니다.

+----+----------+----------+
| Id | UserId | UserName |
+----+----------+----------+
| 1 | John1267 | John |
| 2 | Carol23 | Carol |
+----+----------+----------+
2 rows in set (0.00 sec)

'John 12 67'은 'John1267'로, 'Carol 23'은 'Carol23'으로 변경되며 모든 공백이 성공적으로 제거된 것을 확인할 수 있습니다.

참고: REPLACE()와 TRIM()의 차이점

TRIM() 함수는 문자열 앞뒤의 공백만 제거하는 반면, REPLACE() 함수는 문자열 내부를 포함한 모든 위치의 공백을 제거합니다. 따라서 문자 사이의 공백까지 깨끗하게 정리하고 싶다면 REPLACE() 함수를 사용하는 것이 적합합니다.