在包含Toppings值爲「巧克力」的五個記錄的表中,其中兩個在MaraschinoCherry列中的值爲「是」,另外三個在該列中不包含任何內容(不是「否」 - 無/空)。什麼時候或爲什麼是等於不是在SQL查詢中不等於相反?
此查詢工作正常:
select definition from desserts
where (Toppings = 'Chocolate') and
(MaraschinoCherry <> 'Yes')
order by id
...返回預期三個記錄;但這一個什麼也沒有返回,而不是我期望的兩個記錄:
select definition from desserts
where (Toppings = 'Chocolate') and
(MaraschinoCherry = 'Yes')
order by id
???
仔細檢查具有值'是'的記錄。也許周圍有一些空間?嘗試使用'LIKE'%Yes%''運行相同的查詢以確保相同。 – xbonez 2012-07-05 17:27:08
你確定2有'是'而'有'還是更糟?嘗試修剪。 – banging 2012-07-05 17:27:29
MaraschinoCherry的數據類型是什麼?如果它只是是/否,你應該使它成爲一個布爾值,並且存儲TRUE或FALSE。 – Sablefoste 2012-07-05 17:28:20