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

จะแสดงการนับจากระเบียนที่แตกต่างกันในแถวเดียวกันกับ MySQL ได้อย่างไร


สำหรับสิ่งนี้ คุณสามารถใช้ 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 วินาที)