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

MySQL에서 모든 행의 텍스트에 접두사를 붙여 한 번에 업데이트하는 방법

MySQL에서 테이블의 모든 행에 있는 텍스트 값 앞에 특정 문자열(접두사)을 추가하고 싶다면 CONCAT() 함수를 사용하면 됩니다. CONCAT() 함수는 여러 문자열을 하나로 연결해 주는 함수로, UPDATE 문과 함께 사용하면 기존 데이터 앞에 원하는 접두사를 손쉽게 붙일 수 있습니다.

1. 예제 테이블 생성

먼저 실습에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
    (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Subject varchar(200)
    );
Query OK, 0 rows affected (1.36 sec)

위 쿼리는 자동 증가하는 기본키(Id)와 과목명(Subject) 컬럼을 가진 테이블을 만듭니다.

2. 샘플 데이터 삽입

INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable(Subject) values('MySQL');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(Subject) values('MongoDB');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(Subject) values('Java');
Query OK, 1 row affected (0.12 sec)

3. 현재 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+----+---------+
| Id | Subject |
+----+---------+
| 1  | MySQL   |
| 2  | MongoDB |
| 3  | Java    |
+----+---------+
3 rows in set (0.00 sec)

4. 접두사를 추가하는 UPDATE 쿼리 실행

이제 CONCAT() 함수를 활용해 모든 행의 Subject 값 앞에 "My Favourite Subject is "라는 접두사를 붙이는 쿼리를 실행합니다.

mysql> update DemoTable set Subject=concat("My Favourite Subject is ",Subject);
Query OK, 3 rows affected (0.12 sec)
Rows matched: 3 Changed: 3 Warnings: 0

쿼리가 정상적으로 실행되어 3개의 행이 모두 변경되었습니다.

5. 변경된 결과 확인

다시 SELECT 문으로 테이블을 조회해 업데이트 결과를 확인해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+----+---------------------------------+
| Id | Subject                         |
+----+---------------------------------+
| 1  | My Favourite Subject is MySQL   |
| 2  | My Favourite Subject is MongoDB |
| 3  | My Favourite Subject is Java    |
+----+---------------------------------+
3 rows in set (0.00 sec)

정리

이처럼 UPDATE 문과 CONCAT() 함수를 조합하면 WHERE 절 없이 전체 행을 대상으로, 또는 WHERE 절을 추가해 특정 조건의 행만 대상으로 접두사를 일괄 추가할 수 있습니다. 참고로 접미사를 뒤에 붙이고 싶다면 concat(Subject, "문자열")처럼 인수 순서만 바꿔주면 됩니다. 대량의 데이터를 수정할 때는 반드시 백업 후 작업하는 것이 안전합니다.