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

MySQL เลือกแถวที่แตกต่างกันในคอลัมน์รายการที่คั่นด้วยจุลภาค?


คุณสามารถทำได้โดยใช้ฟังก์ชัน GROUP_CONCAT() ไวยากรณ์มีดังนี้ −

เลือก yourColumnName1,yourColumnName2,yourColumnName3,..N,GROUP_CONCAT(yourColumnName4) เป็น anyAliasNameFROM yourTableNamegroup โดย yourColumnName3, yourColumnName1,yourColumnName2;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง CommaDelimitedList -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> ชื่อ varchar(10), -> GroupId int, -> CompanyName varchar(15), -> RefId int, -> คีย์หลัก ( Id) -> );แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.68 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่ง INSERT แบบสอบถามมีดังต่อไปนี้ −

mysql> แทรกลงใน CommaDelimitedList(Name,GroupId,CompanyName,RefId) -> values('Larry',5,'Google',162);Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงใน CommaDelimitedList( ชื่อ GroupId ชื่อบริษัท RefId) -> ค่า ('Larry',5,'Google',5);การสืบค้นตกลง ได้รับผลกระทบ 1 แถว (0.48 วินาที)mysql> แทรกลงใน CommaDelimitedList(Name,GroupId,CompanyName,RefId) -> ค่า ('Larry',5,'Google',4);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงใน CommaDelimitedList (ชื่อ GroupId ชื่อบริษัท RefId) -> ค่า ('Sam',6, 'Amazon',3);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.31 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+----+-------+---------+-------------+-------+| รหัส | ชื่อ | รหัสกลุ่ม | ชื่อบริษัท | RefId |+----+-------+---------+-------------+-------+| 1 | แลร์รี่ | 5 | Google | 162 || 2 | แลร์รี่ | 5 | Google | 5 || 3 | แลร์รี่ | 5 | Google | 4 || 4 | แซม | 6 | อเมซอน | 3 |+----+-------+---------+-------------+-------+4 แถว ในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อดำเนินการรายการคอลัมน์ที่มีตัวคั่น -

mysql> เลือก Name,GroupId,CompanyName, -> group_concat(RefId) เป็น RefList -> จาก CommaDelimitedList -> group by CompanyName, Name, GroupId;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-------+---------+-------------+---------+| ชื่อ | รหัสกลุ่ม | ชื่อบริษัท | RefList |+-------+---------+-------------+---------+| แซม | 6 | อเมซอน | 3 || แลร์รี่ | 5 | Google | 162,5,4 |+-------+---------+-------------+---------+2 แถวในชุด (0.00 วินาที)