Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách đúng đóng gói subquery trong MySQL

Subquery trong MySQL phải được bao trong cặp ngoặc đơn ().

Cú pháp đúng

SELECT IF((SELECT COUNT(*) FROM ten_bang), 'Yes', 'No') AS ten_alias;

Ví dụ minh họa

Tạo bảng và chèn dữ liệu:

mysql> CREATE TABLE SelectIfDemo (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(10)
    -> );

mysql> INSERT INTO SelectIfDemo(Name) VALUES('John');
mysql> INSERT INTO SelectIfDemo(Name) VALUES('Carol');
mysql> INSERT INTO SelectIfDemo(Name) VALUES('Larry');
mysql> INSERT INTO SelectIfDemo(Name) VALUES('Bob');
mysql> INSERT INTO SelectIfDemo(Name) VALUES('Sam');

Sử dụng subquery đúng cách:

mysql> SELECT IF((SELECT COUNT(*) FROM SelectIfDemo), 'Yes', 'No') AS Result;

Kết quả:

+--------+
| Result |
+--------+
| Yes    |
+--------+

Lỗi thường gặp

Sai: SELECT IF(SELECT COUNT(*) FROM bang, 'Yes', 'No') - thiếu ngoặc đơn

Đúng: SELECT IF((SELECT COUNT(*) FROM bang), 'Yes', 'No') - có ngoặc đơn bao subquery

Subquery có thể xuất hiện ở:

  • Mệnh đề SELECT (như ví dụ)
  • Mệnh đề WHERE: WHERE cot > (SELECT AVG(cot) FROM bang)
  • Mệnh đề FROM: SELECT * FROM (SELECT * FROM bang) AS t
  • Mệnh đề HAVING

Luôn nhớ bao subquery trong ().