gpt4 book ai didi

mysql - 为什么此查询返回空行

转载 作者:可可西里 更新时间:2023-11-01 06:31:51 25 4
gpt4 key购买 nike

比较

SELECT distinct u_id,timestamp as time
FROM my_table;

SELECT distinct u_id,max(timestamp) as time
FROM my_table;

当我的表根本没有行时(或者如果我添加了一个不匹配任何行的 where 子句):

前者返回一个空结果集(这是我所期望的)而后者返回单个行,该行的两个字段的值为 null。

有人可以向我解释为什么第二个会这样吗?

最佳答案

MySQL 文档说

MAX() returns NULL if there were no matching rows.

如果您没有数据,那么它只会将两个值都返回为 NULL。

如果您希望第二个查询也返回空结果集,那么您必须过滤掉 NULL 值,例如使用可以与聚合函数一起使用的 HAVING 子句:

SELECT DISTINCT u_id, MAX(timestamp) as time FROM my_table GROUP BY u_id HAVING time IS NOT NULL;

关于mysql - 为什么此查询返回空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com