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

เชื่อมข้อมูลจากหลายแถวโดยใช้ GROUP_CONCAT() ใน MySQL หรือไม่


เรามาสร้างตารางกันก่อน -

mysql> สร้างตาราง DemoTable (CountryName varchar(100)); ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.01 วินาที)

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

mysql> แทรกลงในค่า DemoTable ('US'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า DemoTable ('AUS'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> เป็นค่า DemoTable('UK');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.19 วินาที)

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

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

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

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

นี่คือแบบสอบถามเพื่อเชื่อมต่อหลายแถว เรากำลังสร้างขั้นตอน -

mysql> DELIMITER //mysql> CREATE PROCEDURE searchDemo (ใน stringValue varchar (255) ออกข้อความเอาต์พุต) BEGIN เลือก group_concat (ลำดับ CountryName ที่แตกต่างกันตาม CountryName) เป็นเอาต์พุตจาก DemoTable โดยที่ CountryName เช่น stringValue; END //สืบค้นตกลง 0 แถวได้รับผลกระทบ (0.18 วินาที)mysql> DELIMITER;

เรียกใช้ขั้นตอนการจัดเก็บโดยใช้คำสั่งโทร -

mysql> โทร searchDemo('U%',@output);Query OK, 1 แถวได้รับผลกระทบ, 2 คำเตือน (0.04 วินาที)

ให้เราตรวจสอบค่าของตัวแปร @output −

mysql> เลือก @output;

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

<ก่อนหน้า>+---------+| @output |+---------+| UK,US |+---------+1 แถวในชุด (0.00 วินาที)