Subquery ต้องอยู่ในวงเล็บ (...) เสมอ ไม่ว่าจะอยู่ใน SELECT, WHERE, FROM หรืออื่นๆ
ไวยากรณ์
SELECT IF((SELECT COUNT(*) FROM yourTableName), 'Yes', 'No') AS anyAliasName;
ตัวอย่างการใช้งาน
สร้างตาราง:
mysql> create table SelectIfDemo (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(10)
-> );
Query OK, 0 rows affected (1.03 sec)
เพิ่มข้อมูล 5 แถว:
mysql> insert into SelectIfDemo(Name) values('John'),('Carol'),('Larry'),('Bob'),('Sam');
ข้อมูล:
+----+-------+ | Id | Name | +----+-------+ | 1 | John | | 2 | Carol | | 3 | Larry | | 4 | Bob | | 5 | Sam | +----+-------+
Subquery ใน IF() ต้องอยู่ในวงเล็บ:
mysql> SELECT IF((SELECT COUNT(*) FROM SelectIfDemo), 'Yes', 'No') AS Result;
ผลลัพธ์:
+--------+ | Result | +--------+ | Yes | +--------+
ข้อผิดพลาดที่พบบ่อย: ลืมวงเล็บครอบ Subquery เช่น IF(SELECT COUNT(*)...) จะเกิด Error 1064
กฎทั่วไป: Subquery ทุกตัวต้องมีวงเล็บครอบ (subquery)