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

MySQL TRIM() 함수로 열 전체 값에서 특정 접두사·접미사 제거 후 업데이트하는 방법

MySQL에서는 TRIM() 함수를 UPDATE 문과 함께 사용하면 열의 모든 값에서 특정 문자열을 한 번에 제거할 수 있습니다. 아래 예제를 통해 구체적인 사용 방법을 살펴보겠습니다.

예제

'Employee' 테이블의 'Department' 열 모든 값에 'Dept.'라는 문자열이 붙어 있는 다음과 같은 데이터가 있다고 가정해 보겠습니다.

mysql> Select * from Employee;
+------+----------------+------------+----------------------+
| Id   | Name           | Address    | Department           |
+------+----------------+------------+----------------------+
| 100  | Raman          | Delhi      | IT Dept.             |
| 101  | Mohan          | Haryana    | History Dept.        |
| 102  | Shyam          | Chandigarh | ENGLISH Dept.        |
| 103  | Sukhjeet Singh | Patiala    | Computer Engg. Dept. |
| 104  | Bimal Roy      | Calcutta   | Computer Engg. Dept. |
+------+----------------+------------+----------------------+
5 rows in set (0.01 sec)

이제 아래 쿼리를 실행하면 Department 열 값에서 'Dept.'가 제거되면서 테이블까지 함께 업데이트됩니다.

mysql> Update Employee set Department = TRIM(Trailing 'Dept.' FROM Department);
Query OK, 5 rows affected (0.10 sec)
Rows matched: 5 Changed: 5 Warnings: 0

mysql> Select * from Employee;
+------+----------------+------------+-----------------+
| Id   | Name           | Address    | Department      |
+------+----------------+------------+-----------------+
| 100  | Raman          | Delhi      | IT              |
| 101  | Mohan          | Haryana    | History         |
| 102  | Shyam          | Chandigarh | ENGLISH         |
| 103  | Sukhjeet Singh | Patiala    | Computer Engg.  |
| 104  | Bimal Roy      | Calcutta   | Computer Engg.  |
+------+----------------+------------+-----------------+
5 rows in set (0.00 sec)

위 결과 집합을 보면 Department 열의 값에서 더 이상 'Dept.'가 남아 있지 않은 것을 확인할 수 있습니다.

TRIM() 함수 문법 정리

TRIM() 함수는 제거할 위치를 직접 지정할 수 있어 상황에 맞게 활용할 수 있습니다.

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
  • LEADING : 문자열 앞쪽(접두사)에서 지정한 문자열을 제거합니다.
  • TRAILING : 문자열 뒤쪽(접미사)에서 지정한 문자열을 제거합니다. 위 예제처럼 값 끝에 붙은 'Dept.'를 없앨 때 사용됩니다.
  • BOTH : 문자열 양쪽 모두에서 지정한 문자열을 제거합니다.

예를 들어 값 앞쪽에 붙은 접두사를 제거하고 싶다면 다음과 같이 작성하면 됩니다.

Update Employee set Department = TRIM(Leading 'Dept.' FROM Department);

참고로 UPDATE 문을 WHERE 절 없이 실행하면 테이블의 모든 행에 일괄 적용되므로, 운영 중인 데이터를 다룰 때는 사전에 백업을 해두거나 WHERE 절로 적용 범위를 제한하는 것이 안전합니다.