Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thực hiện INSERT phức tạp trong MySQL bằng CONCAT()?

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ể