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

รับค่าจากแถวทั้งหมดและแสดงเป็นแถวเดียวโดยคั่นด้วยเครื่องหมายจุลภาคด้วย MySQL


สำหรับสิ่งนี้ ให้ใช้ GROUP_CONCAT() อย่าใช้ประโยค GROUP BY เนื่องจาก GROUP_CONTACT() เป็นวิธีที่ดีกว่าและรวดเร็ว

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

mysql> สร้างตาราง DemoTable1371 -> ( -> Id int, -> CountryName varchar(40) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.89 วินาที)

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

mysql> แทรกลงในค่า DemoTable1371 (100, 'US'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DemoTable1371 (100, 'UK'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที )mysql> แทรกลงในค่า DemoTable1371 (101,'AUS'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.27 วินาที) mysql> แทรกลงในค่า DemoTable1371 (101, 'แองโกลา'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) 

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

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

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

<ก่อนหน้า>+------+-------------+| รหัส | ชื่อประเทศ |+------+-------------+| 100 | สหรัฐอเมริกา || 100 | สหราชอาณาจักร || 101 | AUS || 101 | แองโกลา |+------+-------------+4 แถวในชุด (0.00 วินาที)

นี่คือการสืบค้นเพื่อรับค่าจากแถวทั้งหมดและแสดงเป็นแถวเดียวโดยคั่นด้วยเครื่องหมายจุลภาค -

mysql> เลือก group_concat(CountryName separator ',') จาก DemoTable1371;

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

<ก่อนหน้า>+-----------------------------------------+| group_concat(ตัวคั่นชื่อประเทศ ',') |+------------------------------------------------------ -+| สหรัฐอเมริกา สหราชอาณาจักร ออสเตรเลีย แองโกลา |+----------------------------------------- +1 แถวในชุด (0.00 วินาที)