鉴于两位用户,
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回归,而我不想约翰,因为他住在华盛顿特区。在这种情况下我想要返回0行。
答案 0 :(得分:2)
SELECT name,job,city
FROM users
WHERE IFNULL(job,'') != 'gardener';
如果你想在更新的查询中使用OR job IS NULL
,正如草莓所提到的,你必须在你的JOB条件中加上括号,如下所示
SELECT * FROM users WHERE city != 'Washington D.C.' and (job != 'gardener' OR job IS NULL)
答案 1 :(得分:1)
SELECT * FROM users WHERE job != 'gardener' OR job IS NULL
答案 2 :(得分:1)
SELECT *
FROM users
WHERE
job != 'gardener' or job is NULL
答案 3 :(得分:0)
NULL表示缺少数据,因此技术上SQL不会“知道”值是否为NULL的字段! ='gardener',这就是为什么你需要检查IS NULL,如上所述。