【问题标题】:SQL sum select returns nullSQL求和选择返回null
【发布时间】:2021-07-05 08:03:27
【问题描述】:

我想使用 SELECT SUM 运算符从 MySQL 数据库中获取未读消息数。

所以,我的 SQL 是:

SELECT sum(status_field = 'new') unreadMessagesCount
FROM messages
WHERE 'author_uid' = 'authorUID'

它返回NULL为什么?

我在数据库中有项目,我可以通过 (SELECT * FROM messages) 选择它

【问题讨论】:

  • 你有status_field = new的项目?
  • 'author_uid' = 'authorUID' 始终为 false,因此不会选择任何行。

标签: mysql sql select sum


【解决方案1】:

它返回NULL,因为您正在比较字符串,而不是

WHERE 'author_uid' = 'authorUID'

而且这两个字符串不相等。因此,所有行都被过滤掉了。 NULL 值是因为您有一个聚合查询。当此类查询中没有行时,SUM() 返回 NULL

我不确定你的意图。也许:

WHERE author_uid = 'authorUID'

但是,'authorUID' 对于uid 来说似乎是一个奇怪的值。您需要在此处设置适当的值。如果是字符串,请将其括在单引号中。如果是数字,请不要使用单引号。

【讨论】:

  • 好的,非常感谢!你是对的,我比较了两个字符串而不是具有指定值的列!
猜你喜欢
  • 2018-09-03
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2021-10-01
相关资源
最近更新 更多