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

แบบสอบถาม MySQL เพื่อจัดกลุ่ม concat และวางข้อมูลลงในแถวเดียวบนพื้นฐานของ 1 ค่าในคอลัมน์ที่เกี่ยวข้อง?


สำหรับสิ่งนี้ ให้ใช้ GROUP_CONCAT() สำหรับค่าเพียง 1 ค่าเท่านั้น ให้ทำงานกับส่วนคำสั่ง MySQL WHERE ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable( PlayerName varchar(40), PlayerStatus tinyint(1)); ตกลง, 0 แถวได้รับผลกระทบ (0.60 วินาที)

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

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

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

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

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

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

ต่อไปนี้เป็นแบบสอบถามเพื่อจัดกลุ่ม concat และวางข้อมูลในแถวเดียวบนพื้นฐานของ 1 ค่าในคอลัมน์ที่เกี่ยวข้อง -

mysql> เลือก group_concat(PlayerName) จาก DemoTable โดยที่ PlayerStatus=1;

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

<ก่อนหน้า>+--------------------------+| group_concat(ชื่อผู้เล่น) |+--------------------------+| Chris,Sam,Carol |+--------------------------+1 แถวในชุด (0.00 วินาที)