gpt4 book ai didi

php - MySQL WHERE 子句选择值然后根据另一列省略一些值?

转载 作者:行者123 更新时间:2023-11-29 22:25:08 25 4
gpt4 key购买 nike

我有一个非常简单的问题(我认为),但我似乎无法在任何地方找到答案。我确信我想得太多了,但我仍然想要深入了解。

使用MySQL,我想SELECT基于使用 WHERE 的列的表中的行子句,然后根据另一列优化该搜索。更具体地说,我想返回特定用户尚未存档的所有条目。

这是我今天的内容:

"SELECT * FROM entries WHERE user_id = '4' AND archived <> 'yes'";

这不起作用,所以我尝试了:

"SELECT * FROM entries WHERE (user_id = '4' AND archived <> 'yes')";

但这也没有奏效。

我是否需要返回该用户的所有条目,然后使用 for 循环或使用我的脚本语言的某些内容从该数组中删除“存档”值为"is"的所有条目?

提前感谢您的帮助!

最佳答案

如果有NULL archived 中的值列,那么这些行将不满足不等式谓词。 (这是 bool 三值逻辑的古老问题... TRUEFALSENULL 。)

有几种方法可以处理 NULL值,以获得返回的值。

作为一种选择,您可以使用(MySQL 特定的)NULL 安全比较运算符: <=>

例如:

... WHERE user_id = '4' AND NOT (archived <=> 'yes')

这实际上相当于更符合 ANSI 标准:

... WHERE user_id = '4' AND (archived <> 'yes' OR archived IS NULL)

引用:https://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html#operator_equal-to

关于php - MySQL WHERE 子句选择值然后根据另一列省略一些值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30338973/

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