Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

INSERT INTO SELECT คัดลอกหลายแถวจากตารางหนึ่งไปอีกตารางใน MySQL

ใช้ INSERT INTO ... SELECT ร่วมกับ GROUP_CONCAT() เพื่อรวมหลายแถวเป็นหนึ่งแถว

สร้างตารางต้นทางและเพิ่มข้อมูล

mysql> create table DemoTable1(Name varchar(100)); 
Query OK, 0 rows affected (0.55 sec)

mysql> insert into DemoTable1 values('Chris'); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1 values('Robert'); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1 values('Adam'); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1 values('Bob'); Query OK, 1 row affected (0.20 sec)

สร้างตารางปลายทาง

mysql> create table DemoTable2(ListOfEmployee text); 
Query OK, 0 rows affected (0.59 sec)

คัดลอกรวมชื่อทั้งหมดเข้าไปในหนึ่งแถว

mysql> insert into DemoTable2(ListOfEmployee) 
select group_concat(Name) from DemoTable1; 
Query OK, 1 row affected (0.20 sec)

ตรวจสอบผลลัพธ์

mysql> select * from DemoTable2;
+-----------------------+
| ListOfEmployee        |
+-----------------------+
| Chris,Robert,Adam,Bob |
+-----------------------+
1 row in set (0.00 sec)

ประโยชน์: คัดลอกและแปลงข้อมูลได้ในคำสั่งเดียว ไม่ต้องเขียนโปรแกรมกลาง