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

แบบสอบถาม MySQL เดียวเพื่อรวมสตริงจากหลายแถวเป็นแถวเดียวและแสดงผลรวม ID ผู้ใช้ที่สอดคล้องกันในคอลัมน์อื่นหรือไม่


สำหรับสิ่งนี้ คุณสามารถใช้ GROUP_CONCAT() ใช้ SUM() เพื่อเพิ่มรหัสผู้ใช้ ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1960 ( StudentId int, StudentName varchar(20) );แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที)

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

mysql> แทรกลงในค่า DemoTable1960 (100, 'Chris'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1960 (101, 'Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที )mysql> แทรกลงในค่า DemoTable1960 (102, 'David'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1960 (103 'Mike'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) 

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

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

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

<ก่อนหน้า>+-----------+-------------+| รหัสนักศึกษา | ชื่อนักเรียน |+-----------+-------------+| 100 | คริส || 101 | บ๊อบ || 102 | เดวิด || 103 | Mike |+-----------+-------------+4 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามที่จะรวมสตริงจากหลายแถวเป็นแถวเดียวและยังแสดงผลรวมของรหัสผู้ใช้ -

mysql> เลือก sum(StudentId),group_concat(StudentName separator '.') เป็น ListOfStudent จาก DemoTable1960;

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

<ก่อนหน้า>+----------------+----------------------+| sum(StudentId) | ListOfStudent |+----------------+----------------------+| 406 | Chris.Bob.David.Mike |+----------------+--------------------------------+1 แถวในชุด (0.00 วินาที)