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

MySQL에서 모든 행을 업데이트하며 문자열 앞뒤의 불필요한 공백 제거하는 방법

MySQL TRIM() 함수로 모든 행의 불필요한 공백 제거하기

MySQL에서 문자열 앞뒤에 포함된 불필요한 공백(whitespace)을 제거하려면 TRIM() 함수를 활용하면 됩니다. 먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1405
    -> (
    -> FirstName varchar(20),
    -> LastName varchar(20)
    -> );
Query OK, 0 rows affected (0.55 sec)

다음으로 INSERT 문을 사용해 앞뒤 공백이 포함된 레코드들을 입력합니다.

mysql> insert into DemoTable1405 values('   Chris',' Brown ');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1405 values('David        ',' Miller ');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable1405 values('     Carol ',' Taylor ');
Query OK, 1 row affected (0.19 sec)

SELECT 문으로 테이블의 전체 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable1405;

위 쿼리는 다음과 같은 결과를 출력합니다.

+------------------+----------------+
| FirstName        | LastName        |
+------------------+----------------+
|    Chris         |    Brown       |
| David            |    Miller     |
|      Carol       |    Taylor     |
+------------------+----------------+
3 rows in set (0.00 sec)

출력 결과를 보면 각 컬럼 값의 앞뒤에 불필요한 공백이 함께 저장되어 있는 것을 확인할 수 있습니다.

TRIM() 함수로 공백 제거 후 전체 행 업데이트

이제 TRIM() 함수를 사용해 모든 행의 공백을 제거하면서 업데이트하는 쿼리는 다음과 같습니다.

mysql> update DemoTable1405 set FirstName=trim(FirstName),LastName=trim(LastName);
Query OK, 3 rows affected (0.18 sec)
Rows matched: 3  Changed: 3 Warnings: 0

업데이트가 정상적으로 적용되었는지 테이블의 레코드를 다시 한번 확인해 보겠습니다.

mysql> select * from DemoTable1405;

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

+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| Chris     | Brown    |
| David     | Miller   |
| Carol     | Taylor   |
+-----------+----------+
3 rows in set (0.00 sec)

모든 행에서 FirstName과 LastName 컬럼의 앞뒤 공백이 성공적으로 제거된 것을 확인할 수 있습니다.

TRIM() 함수 사용 시 참고 사항

TRIM() 함수는 문자열의 앞쪽(leading)과 뒤쪽(trailing) 공백만 제거하며, 단어 사이에 있는 공백은 그대로 유지됩니다. 따라서 문자열 내부의 연속된 공백까지 정리하고 싶다면 REPLACE() 또는 REGEXP_REPLACE() 함수를 함께 활용해야 합니다.

  • TRIM(str) : 문자열 양쪽 끝의 공백 제거
  • LTRIM(str) : 왼쪽(앞쪽) 공백만 제거
  • RTRIM(str) : 오른쪽(뒤쪽) 공백만 제거

이처럼 UPDATE 문과 TRIM() 함수를 조합하면 대량의 데이터에서도 손쉽게 불필요한 공백을 일괄 정리할 수 있어 데이터 클렌징 작업에 매우 유용합니다.