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

วิธีปิดวงเล็บ Subquery ให้ถูกต้องใน MySQL

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)