mysql php查询:为什么包含不等于影响结果

时间:2013-03-28 04:58:22

标签: mysql sql select

在包含5000条记录的mysql查询中, 在表中:subscriptions [id autoincrement int,name varchar64,archive tinyint4]

我正在传递以下sql

$sqlg = "SELECT * FROM subscriptions where archive != 1  order by id desc limit 0,24";

以上回报 3061 - 3012之间的记录

如果我删除where子句,

SELECT * FROM subscriptions order by id desc

它返回,记录在5066 - 5037之间,这是我正在寻找的具有NULL或0值的存档的正确结果。 任何想法为什么会这样?

1 个答案:

答案 0 :(得分:1)

NULL0不同。它只是未知,所以如果您还要检查NULL,请使用IS NULL

SELECT * 
FROM subscriptions 
where archive = 0 OR archive IS NULL 
order by id desc 
limit 0, 24