คุณสามารถใช้ COALESCE() ร่วมกับฟังก์ชันรวม MAX() สำหรับสิ่งนี้ได้
ไวยากรณ์มีดังนี้
เลือก COALESCE(MAX(`yourColumnName`), 0) จาก yourTableName;
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามในการสร้างตารางมีดังนี้
mysql> สร้างตารางหลีกเลี่ยงNullDemo -> ( -> `rank` int -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.53 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่ง insert
แบบสอบถามมีดังนี้
mysql> แทรกลงในค่าหลีกเลี่ยงNullDemo (10); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่าหลีกเลี่ยงNullDemo (NULL) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่าหลีกเลี่ยงNullDemo ( 20); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่าหลีกเลี่ยงNullDemo (NULL); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่าหลีกเลี่ยงNullDemo (100); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.11 วินาที) mysql> แทรกลงในค่าหลีกเลี่ยงNullDemo (NULL) แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.16 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select
แบบสอบถามมีดังนี้
mysql> เลือก *จาก avoidNullDemo;
ต่อไปนี้เป็นผลลัพธ์ที่มีค่า NULL
<ก่อนหน้า>+------+| อันดับ |+------+| 10 || NULL || 20 || NULL || 100 || NULL |+------+6 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามเพื่อหลีกเลี่ยงผลลัพธ์ที่เป็นโมฆะ
mysql> เลือก COALESCE(MAX(`rank`), 0) จากหลีกเลี่ยงNullDemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+--------------------------+| COALESCE(MAX(`rank`), 0) |+--------------------------+| 100 |+--------------------------+1 แถวในชุด (0.00 วินาที)นี่คือกรณีที่ตารางว่างเปล่า
ให้เราลบระเบียนทั้งหมดออกจากตารางด้านบน
แบบสอบถามมีดังนี้
mysql> ตัดทอนตาราง avoidNullDemo ตกลง สืบค้น 0 แถวได้รับผลกระทบ (0.92 วินาที)
ตอนนี้ตารางด้านบนว่างเปล่า ให้เราใช้แบบสอบถามข้างต้นสำหรับตารางว่าง
mysql> เลือก COALESCE(MAX(`rank`), 0) จากหลีกเลี่ยงNullDemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+--------------------------+| COALESCE(MAX(`rank`), 0) |+--------------------------+| 0 |+--------------------------+1 แถวในชุด (0.00 วินาที)