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

เชื่อมค่าคอลัมน์บางค่าในบรรทัดเดียวกับ MySQL และนำหน้าสตริงเฉพาะ “MR” ไปทุกสาย


เมธอด CONCAT() จะใช้ในการต่อ “MR” กับทุกสตริง ในขณะที่ GROUP_CONCAT() จะเชื่อมค่าคอลัมน์บางค่าในบรรทัดเดียว

เรามาดูตัวอย่างและสร้างตารางกันก่อน −

mysql> สร้างตาราง DemoTable799( UserId int, UserName varchar(100), UserAge int);Query OK, 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 วินาที)

นี่คือแบบสอบถามเพื่อเชื่อมสตริง -

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

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

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