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

ใช้การกำหนดหมายเลขใน MySQL GROUP_CONCAT


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

mysql> สร้างตาราง DemoTable1627 -> ( -> FirstName varchar(20), -> LastName varchar(20) -> );Query OK, 0 แถวได้รับผลกระทบ (0.59 วินาที)

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

mysql> แทรกลงในค่า DemoTable1627 ('John', 'Smith');Query OK, 1 แถวได้รับผลกระทบ (0.11 วินาที)mysql> แทรกลงในค่า DemoTable1627 ('John','Doe'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า DemoTable1627 ('Adam', 'Smith'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า DemoTable1627 ('Carol', 'Taylor'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.08 วินาที)

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

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

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

<ก่อนหน้า>+-----------+----------+| ชื่อจริง | นามสกุล |+-----------+----------+| จอห์น | สมิธ || จอห์น | โด || อดัม | สมิธ || แครอล | Taylor |+-----------+----------+4 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามที่จะใช้การจัดลำดับ group_concat() -

mysql> เลือก LastName, -> group_concat( -> concat(@j :=if (@p =LastName, @j + 1, if(@p :=LastName,1,1)), '.', FirstName) -> ตัวคั่น ', ') FirstName -> จาก DemoTable1627 -> จัดกลุ่มตามนามสกุล

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

<ก่อนหน้า>+----------+----------------+| นามสกุล | ชื่อจริง |+----------+----------------+| โด | 1.จอห์น || สมิ ธ | 1.จอห์น 2.อดัม || เทย์เลอร์ | 1.แครอล |+----------+----------------+3 แถวในชุด (0.09 วินาที)