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

จะอ้างอิงค่าของคอลัมน์เดียวโดยใช้ GROUP_CONCAT และ CONCAT ด้วย DISTINCT ใน MySQL ได้อย่างไร


สำหรับสิ่งนี้ คุณสามารถใช้ group_concat() พร้อมกับแทนที่ () ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1799 ( EmployeeId varchar(20) ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที)

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

mysql> แทรกลงในค่า DemoTable1799 ('101,102,103,104'); Query OK, 1 แถวได้รับผลกระทบ (0.00 วินาที)mysql> แทรกลงในค่า DemoTable1799 ('106,109'); Query OK, 1 แถวได้รับผลกระทบ (0.00 วินาที)

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

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

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

<ก่อนหน้า>+-----------------+| รหัสพนักงาน |+-----------------+| 101,102,103,104 || 106,109 |+-----------------+2 แถวในชุด (0.00 วินาที)

นี่คือการสืบค้นเพื่ออ้างอิงค่าของคอลัมน์เดียวโดยใช้ group_concat และ concat ด้วยความแตกต่าง -

mysql> เลือก group_concat(distinct concat("'", replace(EmployeeId, "," , "','") , "'")) เป็นเอาต์พุตจาก DemoTable1799;

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

<ก่อนหน้า>+-------------------------------------------+| เอาท์พุต |+-------------------------------------------+| '101','102','103','104','106','109' |+------------------------- ------------+1 แถวในชุด (0.00 วินาที)