2016-04-04 22 views
1

データベースからの展示品のリストを表示する必要があります。いくつかのイベント(1日だけ持続するイベント)には、チェックボックスが付いています。私はそれらを含めたくありません。PHPクエリで等しいか等しくないPHPクエリ

クエリを実行せずにセレクタを実行すると、103の結果が得られます。

私は

AND `event`.`meta_value` = 'on' 

この行を追加した場合、私は23個の結果(イベント)を取得します。それはうまくいく。

私は

AND `event`.`meta_value` != 'on' 

代わりにその行を追加する場合、私は12件の結果を得ます。彼らはイベントではありませんが、68の投稿がありません。

!=の代わりに<>を使用しても同様の結果が試されました。

+0

@Skaddictを、あなたがことができました私の提案が真実かどうかを確認する – Jester

答えて

0

他の68のポストは、おそらくNULLという値を持っている可能性があります。データベースをチェックすると、これを自分で見ることもできます。彼らは、=またはで表示されません= ...あなたがそれらを見たい場合は、具体的属性はNULLことを探すために、あなたのクエリを変更する必要があります:!

AND `event`.`meta_value` IS NULL 
+0

ありがとう!私は、その解決策で欠けている結果を得ることができました。私はまだいくつかのイベントが '!= 'on' 'を使ってフェッチされる理由はまだ分かりませんが、両方の条件を組み合わせて必要なすべての投稿を取得しました。 – Skaddict

+0

うれしいことに、「NULL」は値として見られないので、何も比較することはできません。それがなぜ '!='を実行するときに上がらないのですか? 'NULL'でも' NULL'と同じにすることはできません; ')は、それに対して素敵な隠喩を見つけました。 「NULL」は答えの喚起です。彼らがどれくらいの年齢で2人の人に尋ねれば、両方とも答えが拒否されると、あなたは両方に「NULL」を持つでしょう。それは彼らが平等な年齢であることを意味するものではありません。同じ年齢であるということも意味しません。単純に2つの方法を比較する方法はありません:)ですから、必要な完全なセットを取得するには、 '!='と 'IS NULL'の両方を実行する必要があります。 – Jester

+0

偉大な答えをありがとう、それは今非常に意味をなさない! – Skaddict

関連する問題