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

MySQL에서 필드 값의 선행·후행 공백 제거하기: TRIM() 함수 활용법

MySQL에서 문자열 앞뒤에 붙어 있는 불필요한 공백(선행 공백과 후행 공백)을 제거하려면 TRIM() 함수를 사용하면 됩니다. 데이터 입력 과정에서 실수로 공백이 포함되는 경우가 많은데, 이러한 공백은 검색이나 조건 비교 시 예상치 못한 오류를 일으킬 수 있으므로 반드시 정리해 주는 것이 좋습니다.

TRIM() 함수 기본 문법

TRIM() 함수의 기본적인 사용 방법은 다음과 같습니다.

mysql> SELECT TRIM(' 공백이_포함된_문자열 ');

TRIM() 함수 사용 예제

아래 쿼리는 문자열 양쪽 끝의 공백을 실제로 제거하는 예시입니다.

mysql> SELECT TRIM(' Leading And Trailing whitespaces Demo ');

실행 결과를 보면 문자열 앞뒤의 공백이 모두 제거된 것을 확인할 수 있습니다.

+---------------------------------------+
| TRIM(' Leading And Trailing whitespaces Demo ') |
+---------------------------------------+
| Leading And Trailing whitespaces Demo |
+---------------------------------------+
1 row in set (0.00 sec)

테이블 데이터에 TRIM() 적용하기

이번에는 실제 테이블에 저장된 데이터에서 선행 및 후행 공백을 제거하는 방법을 살펴보겠습니다. 먼저 테스트용 테이블을 생성합니다.

mysql> create table TrimDemo2
-> (
-> name varchar(200)
-> );
Query OK, 0 rows affected (0.53 sec)

다음으로, 공백이 포함된 값을 레코드로 삽입합니다.

mysql> insert into TrimDemo2 values(' John ');
Query OK, 1 row affected (0.13 sec)

저장된 레코드를 조회해 보겠습니다.

mysql> select *from TrimDemo2;

조회 결과, name 컬럼 값에 불필요한 공백이 함께 저장되어 있는 것을 볼 수 있습니다.

+--------------------+
| name               |
+--------------------+
| John                |
+--------------------+
1 row in set (0.00 sec)

UPDATE문으로 공백 일괄 제거하기

이제 UPDATE 문과 TRIM() 함수를 함께 사용하여 테이블 내 데이터의 선행·후행 공백을 한 번에 제거합니다.

mysql> UPDATE TrimDemo2 set name = TRIM(name);
Query OK, 1 row affected (0.20 sec)
Rows matched: 1 Changed: 1 Warnings: 0

업데이트 후 다시 데이터를 조회해 보겠습니다.

mysql> select *from TrimDemo2;

아래 출력 결과에서 확인할 수 있듯이, name 컬럼의 선행 및 후행 공백이 성공적으로 제거되었습니다.

+------+
| name |
+------+
| John |
+------+
1 row in set (0.00 sec)

추가 팁: LTRIM()과 RTRIM()

TRIM() 외에도 MySQL은 방향성 있는 공백 제거 함수를 제공합니다. LTRIM()은 문자열 왼쪽(선행) 공백만 제거하고, RTRIM()은 오른쪽(후행) 공백만 제거합니다. 상황에 따라 이 함수들을 활용하면 더욱 세밀한 공백 처리가 가능합니다.