Đạt được điều này với sự trợ giúp của mệnh đề where.
Cú pháp như sau
SELECT yourColumnName1,yourColumnName2,...N FROM yourTableName WHERE ( SELECT COUNT(*) FROM yourTableName )=2;
Để hiểu khái niệm này, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau
mysql> create table CountWithSubqueryDemo - > ( - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - > EmployeeName varchar(20) - > ); Query OK, 0 rows affected (2.09 sec)
Chèn một số bản ghi vào bảng bằng lệnh chèn.
Truy vấn như sau
mysql> insert into CountWithSubqueryDemo(EmployeeName) values('John'); Query OK, 1 row affected (0.54 sec) mysql> insert into CountWithSubqueryDemo(EmployeeName) values(NULL); Query OK, 1 row affected (0.36 sec) mysql> insert into CountWithSubqueryDemo(EmployeeName) values('Carol'); Query OK, 1 row affected (0.23 sec) mysql> insert into CountWithSubqueryDemo(EmployeeName) values(''); Query OK, 1 row affected (0.31 sec) mysql> insert into CountWithSubqueryDemo(EmployeeName) values('Bob'); Query OK, 1 row affected (1.24 sec) mysql> insert into CountWithSubqueryDemo(EmployeeName) values(NULL); Query OK, 1 row affected (0.30 sec) mysql> insert into CountWithSubqueryDemo(EmployeeName) values('Sam'); Query OK, 1 row affected (0.18 sec) mysql> insert into CountWithSubqueryDemo(EmployeeName) values('Mike'); Query OK, 1 row affected (0.18 sec) mysql> insert into CountWithSubqueryDemo(EmployeeName) values('James'); Query OK, 1 row affected (0.26 sec)
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 CountWithSubqueryDemo;
Sau đây là kết quả
+----+--------------+ | Id | EmployeeName | +----+--------------+ | 1 | John | | 2 | NULL | | 3 | Carol | | 4 | | | 5 | Bob | | 6 | NULL | | 7 | Sam | | 8 | Mike | | 9 | James | +----+--------------+ 9 rows in set (0.19 sec)
Sau đây là cách bạn có thể sử dụng số lượng hàng thực tế trong mệnh đề where
mysql> select Id,EmployeeName from CountWithSubqueryDemo - > where - > ( - > select count(*) from CountWithSubqueryDemo - > )=2; Empty set (0.03 sec)
Trong truy vấn trên, chúng tôi nhận được tập hợp trống vì nó trả về hàng nếu bảng chỉ có hai bản ghi. Do đó, chúng ta hãy xóa tất cả các bản ghi khỏi bảng và chèn 2 bản ghi vào bảng.
Truy vấn như sau
mysql> truncate table CountWithSubqueryDemo; Query OK, 0 rows affected (1.95 sec)
Chèn một số bản ghi vào bảng bằng lệnh chèn.
Truy vấn như sau
mysql> insert into CountWithSubqueryDemo(EmployeeName) values('James'); Query OK, 1 row affected (0.15 sec) mysql> insert into CountWithSubqueryDemo(EmployeeName) values(NULL); Query OK, 1 row affected (0.46 sec)
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 CountWithSubqueryDemo;
Sau đây là kết quả
+----+--------------+ | Id | EmployeeName | +----+--------------+ | 1 | James | | 2 | NULL | +----+--------------+ 2 rows in set (0.00 sec)
Bây giờ, sau đây là truy vấn về số hàng trong mệnh đề where
mysql> select Id,EmployeeName from CountWithSubqueryDemo - > where - > ( - > select count(*) from CountWithSubqueryDemo - > )=2;
Sau đây là kết quả
+----+--------------+ | Id | EmployeeName | +----+--------------+ | 1 | James | | 2 | NULL | +----+--------------+ 2 rows in set (0.00 sec)