สำหรับสิ่งนี้ คุณสามารถใช้ GROUP_CONCAT(), COUNT() ร่วมกับส่วนคำสั่ง GROUP BY ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable -> ( -> CompanyId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> CompanyName varchar(20) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.62 วินาที)
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า DemoTable(CompanyName) ('Amazon');Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า DemoTable(CompanyName) ('Google');Query OK, 1 แถวได้รับผลกระทบ ( 0.09 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อบริษัท) ('Google'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.07 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อบริษัท) ('Microsoft'); ตกลง ตกลง 1 แถวได้รับผลกระทบ ( 0.17 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อบริษัท) ('Amazon'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อบริษัท) ('Amazon'); ตกลง ตกลง 1 แถวได้รับผลกระทบ ( 0.07 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก DemoTable;
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้−
<ก่อนหน้า>+-----------+-------------+| รหัสบริษัท | ชื่อบริษัท |+-----------+-------------+| 1 |อเมซอน || 2 |Google || 3 |Google || 4 |ไมโครซอฟท์ || 5 |อเมซอน || 6 |Amazon |+-----------+--------------------+6 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามเพื่อแสดงการนับจากระเบียนที่แตกต่างกันในแถวเดียวกันกับ MySQL -
mysql> เลือก CompanyName,group_concat(CompanyId),count(CompanyId) เป็นการนับจาก DemoTable -> กลุ่มตาม CompanyName -> มีนับ> 1;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+-------------+--------------------------------------+------ -+| ชื่อบริษัท | group_concat(CompanyId) | นับ |+-------------+--------------------------------------+------- +| อเมซอน | 1,5,6 | 3 || Google | 2,3 | 2 |+-------------+--------------------------------------+------- +2 แถวในชุด (0.00 วินาที)