MySQL에서 열 값을 업데이트할 때는 UPDATE 명령어와 REPLACE() 함수를 함께 사용하면 됩니다. 이 방법을 활용하면 전체 값을 다시 입력하지 않고도 문자열의 특정 부분만 손쉽게 교체할 수 있습니다. 아래 단계별 예제를 통해 자세히 살펴보겠습니다.
1단계: 테이블 생성
먼저 CREATE 명령어로 테이블을 생성합니다.
mysql> CREATE table DemoOnReplace
-> (
-> Id int,
-> Name varchar(200)
-> );
Query OK, 0 rows affected (0.63 sec)
2단계: 데이터 삽입
테이블 생성이 완료되면 INSERT 명령어로 레코드를 삽입합니다.
mysql> INSERT into DemoOnReplace values(1,'John');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT into DemoOnReplace values(1,'David warner');
Query OK, 1 row affected (0.15 sec)
3단계: 데이터 조회
SELECT 명령어로 테이블의 모든 레코드를 확인할 수 있습니다.
mysql> SELECT * from DemoOnReplace;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+------+--------------+
| Id | Name |
+------+--------------+
| 1 | John |
| 1 | David warner |
+------+--------------+
2 rows in set (0.00 sec)
4단계: REPLACE로 열 값 업데이트
문자열의 일부를 교체하며 열 값을 업데이트하는 기본 문법은 다음과 같습니다.
UPDATE yourTableName SET column_name = REPLACE(column_name, 'oldvalue', 'NewValue');
REPLACE 함수는 첫 번째 인수(대상 열), 두 번째 인수(교체할 기존 문자열), 세 번째 인수(새로운 문자열)를 순서대로 받습니다. 실제 적용 예시는 다음과 같습니다.
mysql> UPDATE DemoOnReplace set name = REPLACE(name, 'David warner', 'David warner S.');
Query OK, 1 row affected (0.18 sec)
Rows matched: 2 Changed: 1 Warnings: 0
업데이트 후 결과를 다시 조회해 보겠습니다.
+------+-----------------+
| Id | Name |
+------+-----------------+
| 1 | John |
| 1 | David warner S. |
+------+-----------------+
2 rows in set (0.00 sec)
정리
실행 결과에서 확인할 수 있듯이, UPDATE와 REPLACE를 조합하면 열 값의 문자열 중 원하는 부분만 간편하게 교체할 수 있습니다. 참고로 위 예제에서 "Rows matched: 2"로 표시된 것은 WHERE 조건 없이 모든 행이 대상이 되었기 때문이며, 실제로 변경된 행은 1개입니다. WHERE 절을 추가하면 특정 행만 선택적으로 업데이트할 수 있으므로, 대량의 데이터를 다룰 때는 조건을 지정하는 것이 안전합니다.