子查询返回null时的mysql

Ofe*_*erP 4 mysql sql

我尝试使用 mysql 执行以下查询(应该添加更多条件,但为问题简化了它,因此子查询有时返回空值,有时返回值,这只是为了缩短问题的查询时间):

SELECT COUNT(*)
FROM table
WHERE date = (SELECT MAX(date) FROM table)
Run Code Online (Sandbox Code Playgroud)

我的问题是如果子查询返回null,我的结果将是0,这不是想要的结果。由于我不能IS代替=,我想知道是否有一个简单的解决方案。

spe*_*593 5

MySQL 提供了一个 NULL 安全的相等比较<=>(spaceship) 运算符。

我怀疑如果你用=NULL 安全的相等比较运算符替换相等比较运算符,查询将返回它看起来像你所追求的结果。


这个表达:

  a <=> b
Run Code Online (Sandbox Code Playgroud)

基本上相当于:

  a = b OR ( a IS NULL AND b IS NULL )
Run Code Online (Sandbox Code Playgroud)