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

MySQL 테이블 컬럼 데이터에 REPLACE() 함수를 사용하는 방법

MySQL에서 REPLACE() 함수를 테이블의 실제 컬럼 데이터에 적용하려면, 문자열 대신 컬럼 이름을 함수의 인자로 전달하면 됩니다. 이렇게 하면 해당 컬럼의 각 행(row) 값에 대해 문자열 치환이 수행되며, 원본 데이터는 변경되지 않은 채 조회 결과에만 반영됩니다.

기본 문법

REPLACE(컬럼명, '찾을_문자열', '바꿀_문자열')

즉, 지정한 컬럼의 값 중에서 '찾을_문자열'과 일치하는 부분을 모두 찾아 '바꿀_문자열'로 교체한 결과를 반환합니다.

예제

'Student' 테이블의 Subject 컬럼 데이터를 활용해 REPLACE() 함수의 동작을 확인해 보겠습니다. 아래 쿼리는 과목명이 'Computers'인 학생들을 조회하면서, 문자 's'를 ' Science'로 치환한 결과를 함께 출력합니다.

mysql> Select Id, Name, Subject, REPLACE(Subject, 's', ' Science') from Student WHERE Subject = 'Computers';
+------+--------+-----------+-----------------------------------+
| Id   | Name   | Subject   | REPLACE(Subject, 's', ' Science') |
+------+--------+-----------+-----------------------------------+
| 1    | Gaurav | Computers | Computer Science                  |
| 20   | Gaurav | Computers | Computer Science                  |
+------+--------+-----------+-----------------------------------+
2 rows in set (0.00 sec)

결과 해석

위 실행 결과를 보면 다음과 같은 특징을 확인할 수 있습니다.

  • 조회 조건(WHERE 절)에 따라 Subject가 'Computers'인 두 개의 행만 반환되었습니다.
  • REPLACE() 함수는 'Computers'라는 값을 구성하는 문자 중 소문자 's'를 찾아 ' Science'로 바꾸어 'Computer Science'라는 결과를 만들어 냈습니다.
  • 원본 테이블의 데이터는 그대로 유지되며, 치환된 값은 SELECT 쿼리의 출력 결과에만 나타납니다.

참고 사항

REPLACE() 함수는 대소문자를 구분하여 일치 여부를 판단합니다. 또한 조회 결과가 아니라 실제 테이블의 데이터를 영구적으로 변경하고 싶다면, REPLACE() 함수와 함께 UPDATE 문을 사용해야 합니다.

UPDATE Student SET Subject = REPLACE(Subject, 'Computers', 'Computer Science');

이처럼 REPLACE() 함수는 SELECT 문에서 임시로 가공된 값을 보여주거나, UPDATE 문과 결합하여 저장된 데이터를 일괄 수정할 때 모두 유용하게 활용할 수 있습니다.