เราสามารถใช้ประโยคเงื่อนไขที่เรียกว่า WHERE Clause เพื่อกรองผลลัพธ์ออก เมื่อใช้ส่วนคำสั่ง WHERE นี้ เราสามารถระบุเกณฑ์การเลือกเพื่อเลือกระเบียนที่ต้องการจากตารางได้ ส่วนคำสั่ง HAVING ระบุเงื่อนไขการกรองสำหรับกลุ่มของแถวหรือการรวม
คำสั่ง WHERE ไม่สามารถใช้กับฟังก์ชันการรวมได้ ในขณะที่ HAVING สามารถใช้กับฟังก์ชันการรวมได้ ต่อไปนี้เป็นตัวอย่าง −
เรามาสร้างตารางกันเถอะ
mysql> สร้างตาราง WhereDemo -> ( -> Price int -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.64 วินาที)
กำลังแทรกระเบียนลงในตาราง
mysql> แทรกลงในค่า WhereDemo (100) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า WhereDemo (200) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงในค่า WhereDemo ( 300); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า WhereDemo (400); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที)
เพื่อแสดงรายการทั้งหมด
mysql> เลือก *จาก WhereDemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+-------+| ราคา |+-------+| 100 || 200 || 300 || 400 |+-------+4 แถวในชุด (0.00 วินาที)สามารถใช้คำสั่ง HAVING ร่วมกับฟังก์ชันการรวมได้
mysql> select sum(Price) จาก WhereDemo HAVING Sum(Price)> 500;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+-----------+| sum(ราคา) |+-----------+| 1000 |+------------+1 แถวในชุด (0.00 วินาที)ที่นี่ หากเราจะลองใช้ WHERE กับฟังก์ชันการรวม จะเกิดข้อผิดพลาด
mysql> เลือก sum(Price) จาก WhereDemo โดยที่ Sum(Price)> 200;ERROR 1111 (HY000):การใช้ฟังก์ชันกลุ่มไม่ถูกต้อง