MySQL에서는 TRIM() 함수와 UPDATE 문을 함께 사용하면 열 값에서 특정 문자열을 제거한 뒤 테이블을 손쉽게 업데이트할 수 있습니다. 아래 예시를 통해 'examination_btech' 테이블을 활용해 그 사용법을 자세히 살펴보겠습니다.
예제 1: 문자열 끝부분(Trailing) 제거하기
'Course' 열의 값 끝에 붙어 있는 '(CSE)'라는 문자열을 삭제하고, 동시에 테이블도 업데이트하고 싶다면 다음과 같은 쿼리를 실행하면 됩니다.
mysql> Update examination_btech SET Course = TRIM(Trailing '(CSE)' FROM Course); Query OK, 10 rows affected (0.13 sec) mysql> Select * from examination_btech; +-----------+----------+--------+ | RollNo | Name | Course | +-----------+----------+--------+ | 201712001 | Rahul | B.tech | | 201712002 | Raman | B.tech | | 201712003 | Sahil | B.tech | | 201712004 | Shalini | B.tech | | 201712005 | Pankaj | B.tech | | 201712006 | Mohan | B.tech | | 201712007 | Yash | B.tech | | 201712008 | digvijay | B.tech | | 201712009 | Gurdas | B.tech | | 201712010 | Preeti | B.tech | +-----------+----------+--------+ 10 rows in set (0.00 sec)
위 결과 집합을 보면 'Course' 열의 끝에서 '(CSE)'가 성공적으로 제거되었고, 테이블 역시 정상적으로 업데이트된 것을 확인할 수 있습니다.
예제 2: 문자열 앞부분(Leading) 제거하기
같은 방식으로 TRIM() 함수를 활용하면 문자열의 시작 부분에 있는 특정 문자열도 제거하면서 테이블을 업데이트할 수 있습니다.
mysql> Update examination_btech SET RollNo = TRIM(Leading '201712' FROM RollNo); Query OK, 10 rows affected (0.04 sec) mysql> Select * from examination_btech; +--------+----------+--------+ | RollNo | Name | Course | +--------+----------+--------+ | 1 | Rahul | B.Tech | | 2 | Raman | B.Tech | | 3 | Sahil | B.Tech | | 4 | Shalini | B.Tech | | 5 | Pankaj | B.Tech | | 6 | Mohan | B.Tech | | 7 | Yash | B.Tech | | 8 | digvijay | B.Tech | | 9 | Gurdas | B.Tech | | 10 | Preeti | B.Tech | +--------+----------+--------+ 10 rows in set (0.00 sec)
위 결과에서 확인할 수 있듯이 'RollNo' 열의 시작 부분에서 '201712'가 제거되었으며, 테이블도 함께 업데이트되었습니다.
정리
TRIM() 함수는 세 가지 모드를 지원합니다.
- Trailing: 문자열 끝에서 지정한 문자열 제거
- Leading: 문자열 시작 부분에서 지정한 문자열 제거
- Both: 문자열 양쪽 끝에서 지정한 문자열 제거
이처럼 UPDATE 문 안에서 TRIM() 함수를 조합하면 별도의 복잡한 처리 없이 대량의 데이터에서 원하는 문자열을 한 번에 정리할 수 있어 데이터 클렌징 작업에 매우 유용합니다.