2013-03-28 77 views
1

在MySQL查询有5000条记录, 在表:订阅[ID自动增量INT,名varchar64,归档tinyint4]MySQL的PHP​​查询:为什么一个包括不等于影响结果

我传递的3061之间以下SQL

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

上述返回 记录 - 3012

如果删除where子句,

SELECT * FROM subscriptions order by id desc 

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

+0

阅读[上NULL在比较中如何表现的文档(http://dev.mysql.com/doc/refman/5.6 /en/working-with-null.html)。 – Barmar 2013-03-28 05:35:05

回答

1

NULL0不一样。简单说就是未知的,所以如果你想检查NULL此外,使用IS NULL

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