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()은 오른쪽(후행) 공백만 제거합니다. 상황에 따라 이 함수들을 활용하면 더욱 세밀한 공백 처리가 가능합니다.