เมื่อใดก็ตามที่คุณต้องการค่าทั้งหมดเช่นไม่เป็นค่าว่างสำหรับคอลัมน์ ให้ใช้ count(*) เร็วกว่าการใช้เมธอด count()
ไวยากรณ์ที่จะใช้ count(*) มีดังนี้ -
select count(*) เป็น anyVariableName จาก yourTableName;
เพื่อให้เข้าใจแนวคิดข้างต้น ให้เราสร้างตารางก่อน แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง CountingDemo -> ( -> BookId int -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.60 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า CountingDemo (100) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า CountingDemo (); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า CountingDemo (200 );แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงในค่า CountingDemo (300); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า CountingDemo (); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที )
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก CountingDemo;
ผลลัพธ์
<ก่อนหน้า>+---------+| รหัสหนังสือ |+---------+| 100 || NULL || 200 || 300 || NULL |+--------+5 แถวในชุด (0.00 วินาที)สมมติว่าคอลัมน์ของคุณไม่มีค่าว่าง จากนั้น count(*) และ count() จะให้ผลลัพธ์เหมือนกัน
แต่ในคอลัมน์ BookId ตัวอย่างของเรามีค่าว่างอยู่บ้าง ในกรณีนี้ ทั้ง count(*) และ count() ให้ผลลัพธ์ที่แตกต่างกัน
นี่คือแบบสอบถามที่ใช้ count(*) -
mysql> เลือกจำนวน (*) เป็น AllValue จาก CountingDemo;
ผลลัพธ์
<ก่อนหน้า>+----------+| AllValue |+----------+| 5 |+----------+1 แถวในชุด (0.00 วินาที)เธอเป็นแบบสอบถามที่ใช้ count() และให้ผลลัพธ์อื่นเนื่องจากจะไม่พิจารณานับค่าว่าง แบบสอบถามมีดังนี้ −
mysql> เลือกจำนวน (BookId) เป็น AllvalueWhichisNotnull จาก CountingDemo;