MySQL 如何避免空表的SELECT max(rank) FROM test查询结果为空

MySQL 如何避免空表的SELECT max(rank) FROM test查询结果为空

您可以使用COALESCE()以及聚合函数MAX()来解决这个问题。

语法如下:

SELECT COALESCE(MAX(`yourColumnName`), 0) FROM yourTableName;

为了理解上面的语法,让我们创建一个表。创建表的查询语句如下:

mysql> create table avoidNullDemo
   -> (
   -> `rank` int
   -> );
Query OK, 0 rows affected (0.53 sec)

使用插入命令向表中插入一些记录。

查询语句如下:

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)

使用select语句显示表中的所有记录。

查询语句如下:

mysql> select *from avoidNullDemo;

以下是包含NULL值的输出结果:

+------+
| rank |
+------+
| 10   |
| NULL |
| 20   |
| NULL |
| 100  |
| NULL |
+------+
6 rows in set (0.00 sec)

这里是避免空结果的查询语句。

mysql> select COALESCE(MAX(`rank`), 0) FROM avoidNullDemo;

以下是输出结果

+--------------------------+
| COALESCE(MAX(`rank`), 0) |
+--------------------------+
| 100                      |
+--------------------------+
1 row in set (0.00 sec)

这是表为空的情况。

让我们从以上表中删除所有记录。

查询语句如下:

mysql> truncate table avoidNullDemo;
Query OK, 0 rows affected (0.92 sec)

现在以上表为空。我们来实现对空表的查询。

mysql> select COALESCE(MAX(`rank`), 0) FROM avoidNullDemo;

以下是输出结果

+--------------------------+
| COALESCE(MAX(`rank`), 0) |
+--------------------------+
| 0                        |
+--------------------------+
1 row in set (0.00 sec)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程