gpt4 book ai didi

mysql - 使用 min() 时返回 NULL 值

转载 作者:太空宇宙 更新时间:2023-11-03 11:44:04 31 4
gpt4 key购买 nike

我有一个按特定月份(最小)返回图像的查询。查询工作正常,除了 min 从不返回 NULL 值,我需要 MIN 包含 NULL 值。我知道 MIN 不会返回空值,这就是为什么我尝试了 COALESCE、IFNULL、ISNULL 甚至 LEAST,但都没有成功。

这是查询

SELECT i.published_date_year, i.published_date_month
FROM image i
JOIN (
SELECT i.published_date_year year, MIN(i.published_date_month) month
FROM image i
WHERE i.is_listed = 1
GROUP BY i.published_date_year
) t1 ON t1.year = i.published_date_year AND t1.month = i.published_date_month
WHERE i.published_date_year = 1967 AND i.is_listed = 1
ORDER BY i.published_date_year, i.published_date_month, i.published_date_day, i.image_id DESC

注意事项

MIN(i.published_date_month)

我希望能够返回空值。看起来 MIN 不是正确的函数,那么正确的函数或公式是什么?

最佳答案

我确信 COALESCE、IFNULL、ISNULL 和 LEAST 工作得很好。问题是您之后使用结果加入 i.published_date_month 显然没有什么等于 NULL:

... ON t1.year = i.published_date_year AND t1.month = i.published_date_month

您可以将围绕 OR t1.month IS NULL 构建的表达式添加到您的表达式中,或者简单地选择一个无效的月份作为虚拟值:

... ON t1.year = i.published_date_year
AND COALESCE(t1.month, 0) = COALESCE(i.published_date_month, 0)

不过,我几乎看不出这有什么意义。 image 是否存储没有月份的数据?

关于mysql - 使用 min() 时返回 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39859818/

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