gpt4 book ai didi

mysql - SQL where IS NULL 返回数据不为 NULL 的行

转载 作者:搜寻专家 更新时间:2023-10-30 21:56:01 25 4
gpt4 key购买 nike

我正在尝试获取开始日期高于当前日期或结束日期高于当前日期且白皮书列为空的所有行。

出于某种原因,此 sql 返回我期望的结果,除了它还返回 whitepaper 不为 NULL 的行,如果我转动 sql 并说 whitepaper IS NOT NULL 它将按预期返回所有 whitepaper 不为 null 的行而不是白皮书为空的那些?

'And' 不应该指定必须填写吗?

SQL

SELECT id, 
name,
whitepaper,
date_start,
date_end
FROM approved
WHERE date_start >= CURDATE() OR date_end >= CURDATE()
AND whitepaper IS NULL
ORDER BY date_end DESC
LIMIT 10

最佳答案

正如其他人告诉您的,您必须在 OR 条件周围使用括号。

为什么? Because the OR has a lower priority than AND

没有括号,你的查询实际上是

 SELECT id, 
name,
whitepaper,
date_start,
date_end FROM approved
WHERE date_start >= CURDATE()
OR
(
date_end >= CURDATE()
AND
whitepaper IS NULL
)
ORDER BY date_end DESC LIMIT 10

关于mysql - SQL where IS NULL 返回数据不为 NULL 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49945593/

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