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

MySQL 필드에서 앞뒤 공백 제거하는 방법 – TRIM() 함수 완벽 가이드

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() 함수는 매우 유용하게 활용됩니다.