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

เชื่อมต่อหลายแถวและคอลัมน์ในแถวเดียวด้วย MySQL


หากต้องการเชื่อมหลายแถวและคอลัมน์ในแถวเดียว คุณสามารถใช้ GROUP_CONCAT() ร่วมกับ CONCAT() ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1463 -> ( -> ClientId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> ClientName varchar(20), -> ClientAge int -> );Query OK, 0 แถวได้รับผลกระทบ (1.37 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable1463(ClientName,ClientAge) ('Adam Smith',34) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า DemoTable1463 (ClientName,ClientAge) ('John Doe', 29); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงในค่า DemoTable1463 (ClientName, ClientAge) ('David Miller', NULL); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.28 วินาที) mysql> แทรกลงใน DemoTable1463 (ClientName ,ClientAge) values('John Smith',32);ตกลง, 1 แถวได้รับผลกระทบ (0.14 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก * จาก DemoTable1463;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----------+--------------+-----------+| รหัสลูกค้า | ชื่อลูกค้า | อายุลูกค้า |+----------+--------------+-----------+| 1 | อดัม สมิธ | 34 || 2 | จอห์น โด | 29 || 3 | เดวิด มิลเลอร์ | NULL || 4 | จอห์น สมิธ | 32 |+----------+--------------+-----------+4 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อเชื่อมหลายแถวและคอลัมน์ในแถวเดียว -

mysql> เลือก group_concat(concat(ClientId,':',ClientName,':',IFNULL(ClientAge,''))) จาก DemoTable1463;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อน>+--------------------------------------------- --------------------+| group_concat(concat(ClientId,':',ClientName,':',IFNULL(ClientAge,''))) |+---------------------- --------------------------------------------------+ | 1:อดัม สมิธ:34,2:จอห์น โด:29,3:เดวิด มิลเลอร์:,4:จอห์น สมิธ:32 |+---------------------- -------------------------------------------------- +1 แถวในชุด (0.04 วินาที)