Hàm CONCAT() cho phép kết hợp chuỗi và giá trị cột để tạo dữ liệu phức tạp khi chèn từ bảng này sang bảng khác.
Tạo bảng nguồn (DemoTable)
mysql> CREATE TABLE DemoTable (
-> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentFirstName VARCHAR(20)
-> );
Chèn dữ liệu mẫu
mysql> INSERT INTO DemoTable(StudentFirstName) VALUES('John');
mysql> INSERT INTO DemoTable(StudentFirstName) VALUES('Larry');
mysql> INSERT INTO DemoTable(StudentFirstName) VALUES('Bob');
Xem dữ liệu bảng nguồn
mysql> SELECT * FROM DemoTable;
+-----------+------------------+ | StudentId | StudentFirstName | +-----------+------------------+ | 1 | John | | 2 | Larry | | 3 | Bob | +-----------+------------------+
Tạo bảng đích (DemoTable2)
mysql> CREATE TABLE DemoTable2 (
-> ClientId INT,
-> ClientProjectName VARCHAR(20)
-> );
INSERT phức tạp với CONCAT()
mysql> INSERT INTO DemoTable2
-> SELECT StudentId, CONCAT('Web Student=', StudentId)
-> FROM DemoTable;
Query OK, 3 rows affected (0.17 sec) Records: 3 Duplicates: 0 Warnings: 0
Kết quả bảng đích
mysql> SELECT * FROM DemoTable2;
+----------+-------------------+ | ClientId | ClientProjectName | +----------+-------------------+ | 1 | Web Student=1 | | 2 | Web Student=2 | | 3 | Web Student=3 | +----------+-------------------+
Ứng dụng thực tế
- Tạo mã dự án, mã đơn hàng tự động từ ID
- Kết hợp nhiều cột thành một chuỗi mô tả
- Chuyển đổi dữ liệu khi di chuyển giữa các schema khác nhau
- Có thể dùng
CONCAT_WS()nếu cần phân cách bằng dấu phân cách cụ thể