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

แบบสอบถาม MySQL เพื่อเชื่อมเร็กคอร์ดด้วยรหัสที่เกี่ยวข้องกันในแถวเดียวคั่นด้วยอักขระพิเศษ


สำหรับสิ่งนี้ คุณสามารถใช้ CONCAT_WS() ร่วมกับ GROUP_CONCAT() ให้เราสร้าง

mysql> สร้างตาราง DemoTable2016 -> ( -> UserId int, -> UserName varchar(20) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.51 วินาที)

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

mysql> แทรกลงในค่า DemoTable2016 (1,'Chris'); Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า DemoTable2016 (2,'Bob'); Query OK, 1 แถวได้รับผลกระทบ (0.10 วินาที )mysql> แทรกลงในค่า DemoTable2016 (1, 'David'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DemoTable2016 (2, 'Carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable2016 (1,'Sam');Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)

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

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

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

<ก่อนหน้า>+---------+----------+| รหัสผู้ใช้ | ชื่อผู้ใช้ |+-------+----------+| 1 | คริส || 2 | บ๊อบ || 1 | เดวิด || 2 | แครอล || 1 | แซม |+---------+----------+5 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเชื่อมระเบียนในแถวที่คั่นด้วยอักขระพิเศษ -

mysql> เลือก group_concat(concat_ws('-',UserName,UserId)) จากกลุ่ม DemoTable2016 ตาม UserId;

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

<ก่อน>+--------------------------------------------- +| group_concat(concat_ws('-',ชื่อผู้ใช้,UserId)) |+----------------------------------- ----+| Chris-1,David-1,แซม-1 || Bob-2,แครอล-2 |+----------------------------------------- -----+2 แถวในชุด (0.00 วินาที)