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

MySQL INSERT INTO SELECT chèn nhiều hàng từ bảng khác

Kết hợp INSERT INTO ... SELECT với GROUP_CONCAT() để gộp nhiều hàng thành một chuỗi rồi chèn vào bảng khác.

Bảng nguồn

mysql> CREATE TABLE DemoTable1(Name VARCHAR(100)); 
Query OK, 0 rows affected (0.55 sec)

mysql> INSERT INTO DemoTable1 VALUES('Chris'), ('Robert'), ('Adam'), ('Bob'); 
Query OK, 4 rows affected

Bảng đích

mysql> CREATE TABLE DemoTable2(ListOfEmployee TEXT); 
Query OK, 0 rows affected (0.59 sec)

Chèn dữ liệu gộp từ bảng 1 sang bảng 2

mysql> INSERT INTO DemoTable2(ListOfEmployee) 
SELECT GROUP_CONCAT(Name) FROM DemoTable1; 
Query OK, 1 row affected (0.20 sec)

Kết quả:

+-----------------------+
| ListOfEmployee        |
+-----------------------+
| Chris,Robert,Adam,Bob |
+-----------------------+
1 row in set (0.00 sec)

Lưu ý: GROUP_CONCAT có giới hạn độ dài mặc định 1024 ký tự (biến group_concat_max_len). Với dữ liệu lớn, cần tăng giá trị này hoặc xử lý theo batch.