Bạn có thể sử dụng COALESCE () cùng với hàm tổng hợp MAX () cho việc này.
Cú pháp như sau
SELECT COALESCE(MAX(`yourColumnName`), 0) FROM yourTableName;
Để 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 avoidNullDemo -> ( -> `rank` int -> ); Query OK, 0 rows affected (0.53 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 avoidNullDemo values(10); Query OK, 1 row affected (0.20 sec) mysql> insert into avoidNullDemo values(NULL); Query OK, 1 row affected (0.18 sec) mysql> insert into avoidNullDemo values(20); Query OK, 1 row affected (0.17 sec) mysql> insert into avoidNullDemo values(NULL); Query OK, 1 row affected (0.11 sec) mysql> insert into avoidNullDemo values(100); Query OK, 1 row affected (0.11 sec) mysql> insert into avoidNullDemo values(NULL); Query OK, 1 row affected (0.16 sec)
Hiển thị cho bạn 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 avoidNullDemo;
Sau đây là đầu ra với giá trị NULL
+------+ | rank | +------+ | 10 | | NULL | | 20 | | NULL | | 100 | | NULL | +------+ 6 rows in set (0.00 sec)
Đây là truy vấn để tránh kết quả rỗng
mysql> select COALESCE(MAX(`rank`), 0) FROM avoidNullDemo;
Sau đây là kết quả
+--------------------------+ | COALESCE(MAX(`rank`), 0) | +--------------------------+ | 100 | +--------------------------+ 1 row in set (0.00 sec)
Đây là trường hợp khi bảng trống.
Hãy để chúng tôi xóa tất cả các bản ghi khỏi bảng trên.
Truy vấn như sau
mysql> truncate table avoidNullDemo; Query OK, 0 rows affected (0.92 sec)
Bây giờ bảng trên là trống. Hãy để chúng tôi triển khai truy vấn trên cho bảng trống
mysql> select COALESCE(MAX(`rank`), 0) FROM avoidNullDemo;
Sau đây là kết quả
+--------------------------+ | COALESCE(MAX(`rank`), 0) | +--------------------------+ | 0 | +--------------------------+ 1 row in set (0.00 sec)