2016-04-04 34 views
1

我需要顯示數據庫中展品的列表。一些是事件(僅持續一天的展示),用複選框標記。我不想包括這些。在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'是答案的一個絕對。如果你問兩個人他們多大年紀,他們都拒絕回答你們兩個都會有'NULL'。這並不意味着他們的年齡相等。這也不意味着他們有相同的年齡。根本沒有辦法比較兩個:)所以你必須同時執行'!='和'IS NULL'才能獲得你想要的完整集合。 – Jester

+0

感謝您的好評,現在感覺非常好! – Skaddict