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

แบบสอบถาม MySQL เพื่อจัดกลุ่ม concat ที่แตกต่างกันโดย Id?


ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable ( Id int ชื่อ varchar(100)); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.64 วินาที)

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

mysql> แทรกลงในค่า DemoTable (100, 'Chris'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.44 วินาที) mysql> แทรกลงในค่า DemoTable (200, 'Robert'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.16 วินาที )mysql> แทรกลงในค่า DemoTable (100, 'Chris'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DemoTable (300, 'David'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า DemoTable (400,'Mike');Query OK, 1 แถวได้รับผลกระทบ (0.10 วินาที)mysql> แทรกลงในค่า DemoTable (400,'Mike');Query OK, 1 แถวได้รับผลกระทบ (0.10 วินาที)

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

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

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

<ก่อนหน้า>+------+---------+| รหัส | ชื่อ |+------+-------+| 100 | คริส || 200 | โรเบิร์ต || 100 | คริส || 300 | เดวิด || 400 | ไมค์ || 400 | ไมค์ |+------+-------+6 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามไปยังกลุ่ม MySQL Concat ที่แตกต่างกันโดย Id -

mysql> เลือก group_concat(Name)from( เลือก Id ที่แตกต่างกัน ชื่อจาก DemoTable)tbl;

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

<ก่อนหน้า>+-----------------------------------+| group_concat(Name) |+--------------------------------------+| Chris,Robert,David,Mike |+-------------------------+1 แถวในชุด (0.00 วินาที)