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

จะเชื่อมสตริงโดยใช้ทั้ง GROUP_CONCAT() และ CONCAT() ในการสืบค้น MySQL เดียวกันได้อย่างไร


เมธอด CONCAT() ใช้เพื่อเชื่อมต่อ ในขณะที่ GROUP_CONCAT() ใช้เพื่อเชื่อมสตริงจากกลุ่มเป็นสตริงเดียว

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

mysql> สร้างตาราง DemoTable799 ( UserId int, ชื่อผู้ใช้ varchar(100), UserAge int); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.56 วินาที)

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

mysql> แทรกลงในค่า DemoTable799 (101,'John',21); ตกลง ตกลง 1 แถวที่ได้รับผลกระทบ (0.18 วินาที)mysql> ลงในค่า DemoTable799 (102,'Chris',26); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.22 วินาที) mysql> แทรกลงในค่า DemoTable799 (101, 'Robert', 23); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DemoTable799 (103, 'David', 24); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า DemoTable799 (101, 'Mike', 29); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.18 วินาที)

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

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

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

<ก่อนหน้า>+---------+----------+---------+| รหัสผู้ใช้ | ชื่อผู้ใช้ | อายุผู้ใช้ |+---------+----------+---------+| 101 | จอห์น | 21 || 102 | คริส | 26 || 101 | โรเบิร์ต | 23 || 103 | เดวิด | 24 || 101 | ไมค์ | 29 |+---------+----------+---------+5 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเชื่อมสตริงกับ CONCAT() และ GROUP_CONCAT() -

mysql> เลือก UserId,GROUP_CONCAT(CONCAT('MR.', UserName)) จากกลุ่ม DemoTable799 ตาม UserId;

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

<ก่อนหน้า>+---------+----------------------------- ---+| รหัสผู้ใช้ | GROUP_CONCAT(CONCAT('MR.', ชื่อผู้ใช้)) |+---------+--------------------------- --------------+| 101 | นายจอห์น นายโรเบิร์ต นายไมค์ || 102 | นายคริส || 103 | นายเดวิด |+-------+----------------------------- ---+3 แถวในชุด (0.00 วินาที)