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

ใน MySQL มีวิธีเปลี่ยนบันทึกคอลัมน์เป็นรายการหรือไม่?


ได้ เราสามารถเปลี่ยนเร็กคอร์ดของคอลัมน์เป็นรายการโดยใช้ MySQL GROUP_CONCAT() ให้เราสร้างตารางก่อน -

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

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

mysql> แทรกลงในค่า DemoTable (100,'Chris'); Query OK, 1 แถวได้รับผลกระทบ (0.54 วินาที)mysql> แทรกลงในค่า DemoTable (100,'Robert'); Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที )mysql> แทรกลงในค่า DemoTable (100, 'Adam'); Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า DemoTable (100,'David'); Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)

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

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

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

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

นี่คือแบบสอบถามเพื่อเปลี่ยนระเบียนของคอลัมน์เป็นรายการ -

mysql> เลือก ClientId,group_concat(ClientName separator ',') จากกลุ่ม DemoTable ตาม ClientId

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

<ก่อนหน้า>+----------+----------------------------------- -----+| รหัสลูกค้า | group_concat(ตัวคั่นชื่อลูกค้า ',') |+----------+----------------------------- ----+| 100 | คริส,โรเบิร์ต,อดัม,เดวิด |+----------+------------------------------------ ----------+1 แถวในชุด (0.00 วินาที)