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

รวมหลายแถวในรายการที่คั่นด้วยจุลภาคใน MySQL หรือไม่


หากต้องการรวมหลายแถวเป็นรายการที่คั่นด้วยจุลภาค ให้ใช้เมธอด GROUP_CONCAT() ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable (รหัส int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY ชื่อ varchar(30) ทำเครื่องหมาย int ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.52 วินาที)

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

mysql> แทรกลงในค่า DemoTable(Name,Marks)('John',67);Query OK, 1 แถวได้รับผลกระทบ (0.25 วินาที)mysql> แทรกลงในค่า DemoTable(Name,Marks)('Carol',69);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงใน DemoTable (ชื่อ, เครื่องหมาย) ค่า ('Sam', 69); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงใน DemoTable (ชื่อ, เครื่องหมาย) values('David',78);Query OK, 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงใน DemoTable(Name,Marks) values('Chris',69);Query OK, 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงในค่า DemoTable(ชื่อ,เครื่องหมาย) ('Bob',67);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.17 วินาที)

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

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

ผลลัพธ์

<ก่อนหน้า>+----+-------+-------+| รหัส | ชื่อ | เครื่องหมาย |+----+-------+-------+| 1 | จอห์น | 67 || 2 | แครอล | 69 || 3 | แซม | 69 || 4 | เดวิด | 78 || 5 | คริส | 69 || 6 | บ๊อบ | 67 |+----+-------+-------+6 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อรวมหลายแถวเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาคใน MySQL -

mysql> SELECT Marks, GROUP_CONCAT(Name ORDER BY Name ASC SEPARATOR ', ') จาก DemoTable GROUP BY Marks;

ผลลัพธ์

<ก่อนหน้า>+-------+-------------------------------------- ---------------+| มาร์ค | GROUP_CONCAT(ชื่อ เรียงตามชื่อ ASC SEPARATOR ', ') |+------+---------------------------- ------------------------------------+| 67 | บ๊อบ จอห์น || 69 | แครอล คริส แซม || 78 | เดวิด |+-------+-------------------------------------- --------------+3 แถวในชุด (0.00 วินาที)