MySQL에서 문자열 데이터의 선행 공백(leading space)과 후행 공백(trailing space)을 제거하려면 TRIM() 함수를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 테이블 생성부터 공백 제거까지 전 과정을 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 CREATE 명령어를 사용해 테스트용 테이블을 생성합니다.
mysql> CREATE table TrailingANdLeadingDemo
-> (
-> SpaceTrailLead varchar(100)
-> );
Query OK, 0 rows affected (0.57 sec)
2. 공백이 포함된 데이터 삽입하기
테이블 생성 후 INSERT 명령어로 앞뒤에 공백이 포함된 레코드를 삽입합니다.
mysql> INSERT into TrailingANdLeadingDemo values(' john ');
Query OK, 1 row affected (0.12 sec)3. 저장된 레코드 확인하기
SELECT 명령어를 사용해 현재 저장된 모든 레코드를 조회할 수 있습니다.
mysql> SELECT * from TrailingANdLeadingDemo;
실행 결과는 다음과 같습니다.
+----------------+
| SpaceTrailLead |
+----------------+
| john |
+----------------+
1 row in set (0.00 sec)
화면상으로는 구분이 어렵지만, 실제로는 'john' 문자열 앞뒤에 공백이 함께 저장되어 있습니다.
4. TRIM() 함수로 공백 제거하기
선행 및 후행 공백을 제거하는 TRIM() 함수의 기본 문법은 다음과 같습니다.
UPDATE yourTableName SET column_name = TRIM(column_name);
이제 위 쿼리를 실제 테이블에 적용해 보겠습니다.
mysql> UPDATE TrailingANdLeadingDemo SET SpaceTrailLead=TRIM(SpaceTrailLead);
Query OK, 1 row affected (0.17 sec)
Rows matched: 1 Changed: 1 Warnings: 0
5. 결과 확인하기
공백이 정상적으로 제거되었는지 다시 SELECT 문으로 확인합니다.
mysql> SELECT * from TrailingANdLeadingDemo;
실행 결과는 다음과 같습니다.
+----------------+
| SpaceTrailLead |
+----------------+
| john |
+----------------+
1 row in set (0.00 sec)
위 출력 결과에서 볼 수 있듯이 컬럼 값의 앞뒤 공백이 깨끗하게 제거된 것을 확인할 수 있습니다.
추가 팁: TRIM() 함수의 다양한 활용
TRIM() 함수는 기본적으로 양쪽 공백을 모두 제거하지만, 옵션을 지정하면 한쪽 방향만 선택적으로 제거할 수도 있습니다.
- 왼쪽 공백만 제거:
SELECT LTRIM(column_name) FROM table_name; - 오른쪽 공백만 제거:
SELECT RTRIM(column_name) FROM table_name; - 특정 문자 제거:
SELECT TRIM(BOTH 'x' FROM column_name) FROM table_name;
사용자 입력값을 저장하기 전에 데이터 정규화가 필요하거나, 기존 데이터의 불필요한 공백을 일괄 정리할 때 TRIM() 함수는 매우 유용하게 활용됩니다.