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

MySQL에서 문자열 필드를 연결(CONCAT)하여 업데이트하는 쿼리 작성법

MySQL에서 문자열 필드에 새로운 문자열을 이어 붙여(연결하여) 업데이트하려면 CONCAT() 함수를 사용하면 됩니다. CONCAT() 함수는 여러 개의 문자열을 하나로 합쳐 주는 MySQL 내장 함수로, UPDATE 문과 함께 활용하면 기존 값 뒤에 원하는 문자열을 손쉽게 추가할 수 있습니다.

1. 예제 테이블 생성

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

mysql> create table DemoTable
-> (
-> SequenceId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentId varchar(100)
-> );
Query OK, 0 rows affected (0.59 sec)

2. 데이터 삽입

INSERT 명령을 사용하여 테이블에 샘플 레코드를 삽입합니다.

mysql> insert into DemoTable(StudentId) values('STU');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable(StudentId) values('STU1');
Query OK, 1 row affected (0.18 sec)

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

mysql> select *from DemoTable;

출력 결과

+------------+-----------+
| SequenceId | StudentId |
+------------+-----------+
| 1 | STU |
| 2 | STU1 |
+------------+-----------+
2 rows in set (0.00 sec)

3. CONCAT() 함수로 문자열 필드 업데이트

다음은 기존 StudentId 값 뒤에 '-101'이라는 문자열을 연결하여 업데이트하는 쿼리입니다.

mysql> update DemoTable
-> set StudentId=concat(StudentId,'-','101');
Query OK, 2 rows affected (0.14 sec)
Rows matched: 2 Changed: 2 Warnings: 0

업데이트 후 테이블의 전체 레코드를 다시 한번 확인해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+------------+-----------+
| SequenceId | StudentId |
+------------+-----------+
| 1 | STU-101 |
| 2 | STU1-101 |
+------------+-----------+
2 rows in set (0.00 sec)

참고 사항

위 예제처럼 WHERE 절 없이 UPDATE 문을 실행하면 테이블의 모든 행이 업데이트됩니다. 특정 조건에 해당하는 행만 업데이트하고 싶다면 다음과 같이 WHERE 절을 함께 사용하는 것이 안전합니다.

mysql> update DemoTable
-> set StudentId=concat(StudentId,'-','101')
-> where SequenceId = 1;

또한 CONCAT() 함수는 두 개 이상의 문자열도 자유롭게 연결할 수 있으며, 구분자가 필요한 경우 CONCAT_WS() 함수를 사용하면 더욱 편리합니다.