我正在尝试编写一个SELECT语句,它将返回两列为空或NULL的所有行。两列都需要为空或NULL。
我在PHPMyAdmin中尝试了这个查询 - 然而,它仍然返回一些行,其中任一列的值为'on'。
SELECT *
FROM product
WHERE isstock IS NULL
OR isstock = ''
AND
iscon IS NULL
OR iscon = ''
有人可以解释我哪里出错吗?
谢谢,
答案 0 :(得分:6)
您应该用括号组织查询:
SELECT *
FROM product
WHERE (isstock IS NULL OR isstock = '')
AND (iscon IS NULL OR iscon = '')
如果我们在默认情况下将括号添加到原始查询中:
isstock IS NULL OR
(isstock = '' AND iscon IS NULL) OR
iscon = ''
所以没有()'它意味着完全不同。
在mysql中你也可以这样做:
SELECT *
FROM product
WHERE
ifnull(isstock,'') = ''
AND
ifnull(iscon,'') = ''
也许这有点清洁。