当 MySQL 返回的查询结果为空(即零行)的时候 结果表示0

当 MySQL 返回的查询结果为空(即零行)的时候 结果表示0,第1张

SELECT

a.update_date,

a.user_id,

a.news_id,

(CASE WHEN b.counter IS NULL THEN 0 ELSE b.counter END) as 'Counter'

FROM (

SELECT update_date, user_id, news_id

FROM t_comment

GROUP BY update_date, user_id, news_id) a

LEFT OUTER JOIN

(

SELECT update_date, user_id, news_id,

count(*) AS counter FROM t_comment

WHERE user_id = 2 AND news_id = 15

GROUP BY user_id, news_id

) b

ON a.update_date = b.update_date

AND a.user_id = b.user_id

AND a.news_id = b.news_id

GO

T-SQL实现,原理如上,未经测试。祝你好运。

这个问题的根源在于null。

众所周知,当判断一个值是否为null的时候,sql要用is null 或者is not null, 在SQL中,Null值并不是一个值,而是表示特定含义,其所表示的含义是“Unknow”,可以理解为未定义或者未知,因此任何与Null值进行比对的二元 *** 作符结果一定为Null,包括Null值本身。

解决:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5902666.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存