Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để gửi một cách chính xác truy vấn con trong MySQL?

Bạn cần đóng truy vấn con trong dấu ngoặc đơn. Cú pháp như sau -

select if((select count(*) from yourTableName ),'Yes','No') as anyAliasName;

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -

mysql> create table SelectIfDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Name varchar(10)
   -> );
Query OK, 0 rows affected (1.03 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -

mysql> insert into SelectIfDemo(Name) values('John');
Query OK, 1 row affected (0.21 sec)
mysql> insert into SelectIfDemo(Name) values('Carol');
Query OK, 1 row affected (0.17 sec)
mysql> insert into SelectIfDemo(Name) values('Larry');
Query OK, 1 row affected (0.12 sec)
mysql> insert into SelectIfDemo(Name) values('Bob');
Query OK, 1 row affected (0.22 sec)
mysql> insert into SelectIfDemo(Name) values('Sam');
Query OK, 1 row affected (0.15 sec)

Bây giờ bạn có thể hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

mysql> select *from SelectIfDemo;

Sau đây là kết quả -

+----+-------+
| Id | Name  |
+----+-------+
|  1 | John  |
|  2 | Carol |
|  3 | Larry |
|  4 | Bob   |
|  5 | Sam   |
+----+-------+
5 rows in set (0.00 sec)

Đây là cách chính xác để sử dụng truy vấn con bên trong dấu ngoặc đơn. Truy vấn như sau -

mysql> select if((select count(*) from SelectIfDemo),'Yes','No') as Result;

Sau đây là kết quả -

+--------+
| Result |
+--------+
| Yes    |
+--------+
1 row in set (0.00 sec)