SQL列值为空,搜索过滤器错误

compguy24

给定两个用户,

NAME   | JOB     | CITY
John   | null    | Washington D.C.
Sandy  | gardener| Nashville

如果我的SQL查询显示:

 "SELECT * FROM users WHERE job != 'gardener'",

我的结果是0,

我希望他们成为1:

John |  null  | Washington  D.C.

这是我要进行的较大查询的一个简单得多的示例。如果我将Job的默认值设置为'0',那么我会得到正确的结果,但是为了应用程序的其余部分,我宁愿在其中使用null。

更新:谢谢所有的建议,但我面临另一个问题。

假设我的SQL查询是:

"SELECT * FROM users WHERE city != Washington D.C. and job != 'gardener' OR job IS NULL"

不幸的是,这返回了John,而我不希望John,因为他住在华盛顿特区,在这种情况下,我想返回0行。

锡兰
SELECT name,job,city
FROM users
WHERE IFNULL(job,'') != 'gardener';

如果您想OR job IS NULL在更新的查询中使用(如Strawberry所述),则必须在您的JOB条件周围加上括号,如下所示

SELECT * FROM users WHERE city != 'Washington D.C.' and (job != 'gardener' OR job IS NULL)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章