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

Trả về một giá trị ngay cả khi không có kết quả trong một truy vấn MySQL?

Bạn có thể sử dụng hàm IFNULL () từ MySQL để trả về một giá trị ngay cả khi không có kết quả. Hãy để chúng tôi tạo một bảng. Truy vấn te để tạo bảng.

mysql> create table IfNullDemo
   −> (
   −> Id int,
   −> Name varchar(100)
   −> );
Query OK, 0 rows affected (0.60 sec)

Chèn một số bản ghi trong bảng với sự trợ giúp của lệnh insert. Truy vấn như sau -

mysql> insert into IfNullDemo values(1,'John');
Query OK, 1 row affected (0.18 sec)

mysql> insert into IfNullDemo values(200,'Sam');
Query OK, 1 row affected (0.21 sec)

mysql> insert into IfNullDemo values(204,'Carol');
Query OK, 1 row affected (0.14 sec)

mysql> insert into IfNullDemo values(510,'Johnson');
Query OK, 1 row affected (0.18 sec)

Hiển thị tất cả các bản ghi từ bảng với sự trợ giúp của câu lệnh select. Truy vấn như sau -

mysql> select *from IfNullDemo;

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

+------+---------+
| Id   | Name    |
+------+---------+
|   1 | John     |
| 200 | Sam      |
| 204 | Carol    |
| 510 | Johnson  |
+------+---------+
4 rows in set (0.00 sec)

Trước tiên, hãy để chúng tôi trả về một giá trị cho điều kiện TRUE -

Truy vấn như sau -

mysql> select ifnull((select Id from IfNullDemo where Id = 200),'No Result Found') As ResultFound;

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

+-------------+
| ResultFound |
+-------------+
| 200         |
+-------------+
1 row in set (0.00 sec)

Bây giờ, chúng ta hãy trả về một giá trị nếu không có kết quả bằng phương thức IFNULL. Truy vấn như sau -

mysql> select ifnull((select Id from IfNullDemo where Id = 400),'No Result Found') As ResultFound;

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

+-----------------+
| ResultFound     |
+-----------------+
| No Result Found |
+-----------------+
1 row in set (0.00 sec)