1

テーブル内の 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 の値を持つアーカイブで探している正しい結果です。なぜこれが起こっているのでしょうか?

4

1 に答える 1

1

NULLと同じではありません0。単純に不明なので、確認したい場合はNULLIS NULL

SELECT * 
FROM subscriptions 
where archive = 0 OR archive IS NULL 
order by id desc 
limit 0, 24
于 2013-03-28T05:00:07.317 に答える