MySQL에서 LTRIM()과 RTRIM() 함수를 사용하여 문자열의 앞쪽(선행) 공백과 뒤쪽(후행) 공백을 동시에 제거하려면, 두 함수 중 하나를 다른 함수의 인자로 중첩해서 사용해야 합니다. 즉, RTRIM() 함수 안에 LTRIM() 함수를 인자로 전달하거나, 반대로 LTRIM() 함수 안에 RTRIM() 함수를 인자로 전달하는 방식입니다.
예제
앞뒤 공백이 모두 포함된 값들이 들어 있는 'Name' 컬럼을 가진 'test_trim' 테이블이 있다고 가정해 보겠습니다.
mysql> Select * from test_trim; +---------------+ | Name | +---------------+ | Gaurav | | Rahul | | Aarav | +---------------+ 3 rows in set (0.00 sec)
아래 쿼리는 LTRIM()과 RTRIM() 함수를 조합하여 이름 데이터에서 앞뒤 공백을 한 번에 제거합니다. 두 함수의 적용 순서(어느 쪽을 바깥에 두든)는 결과에 영향을 주지 않습니다.
mysql> Select Name, LTRIM(RTRIM(Name))AS 'Name Without Spaces' from test_trim; +---------------+---------------------+ | Name | Name Without Spaces | +---------------+---------------------+ | Gaurav | Gaurav | | Rahul | Rahul | | Aarav | Aarav | +---------------+---------------------+ 3 rows in set (0.00 sec) mysql> Select Name, RTRIM(LTRIM(Name))AS 'Name Without Spaces' from test_trim; +---------------+---------------------+ | Name | Name Without Spaces | +---------------+---------------------+ | Gaurav | Gaurav | | Rahul | Rahul | | Aarav | Aarav | +---------------+---------------------+ 3 rows in set (0.00 sec)
참고: TRIM() 함수로 더 간단하게 처리하기
사실 MySQL에는 앞뒤 공백을 한 번에 제거해 주는 TRIM() 함수가 기본으로 제공됩니다. 따라서 위와 같이 두 함수를 중첩할 필요 없이 SELECT TRIM(Name) FROM test_trim;처럼 간결하게 작성할 수도 있습니다. 다만 LTRIM()과 RTRIM()을 조합하는 방식은 특정 상황에서 한쪽 공백만 선택적으로 처리하거나, 함수 동작 원리를 명확히 보여줘야 할 때 유용하게 활용할 수 있습니다.