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

ฉันควรใช้ COUNT(*) เพื่อรับระเบียนทั้งหมดใน MySQL หรือไม่


เมื่อใดก็ตามที่คุณต้องการค่าทั้งหมดเช่นไม่เป็นค่าว่างสำหรับคอลัมน์ ให้ใช้ 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;

ผลลัพธ์

<ก่อนหน้า>+-----------------------+| AllvalueWhichisNotnull |+--------------------------------------+| 3 |+-----------------------+1 แถวในชุด (0.00 วินาที)