2010-11-19 90 views
6

我有一個傳記數據表,我需要做一個查詢,選擇在他們的生物中有「死亡」一詞並且死亡日期爲NULL的人。這不起作用:MySQL選擇與LIKE和WHERE

SELECT * FROM people 
WHERE bio LIKE '%died%' 
AND death_date IS NULL 

那大家選擇其death_date爲空,也選擇誰沒有這個詞人們在他們的生物「死亡」。我可以在一個查詢中做到這一點嗎?

+2

你確定它返回的人沒有'死'在他們的生物?請記住,它還將包含含有死亡的詞語,例如研究過的和富有的。 – Kibbee 2010-11-19 16:56:41

回答

5

它可以像一個字‘completelydied’,他們仍然會被選中。仔細如果檢查'died'短語不存在作爲您選擇的記錄中的某個單詞的一部分

+0

在「死亡」之前添加空格似乎可行,謝謝。 – kirkaracha 2010-11-19 17:01:14

+1

不要忘記,如果單詞處於生物的開頭,那麼在'已死'前添加空格將不起作用。 – 2010-11-19 17:03:29

3

也許問題是引號,用「而不是」包LIKE子句。

SELECT * FROM people 
WHERE bio LIKE "%died%" 
AND death_date IS NULL 
+0

像這樣運行查詢返回相同的結果。 – kirkaracha 2010-11-19 16:59:57

+0

什麼數據類型是「生物」字段? – Webnet 2010-11-19 18:16:10

0

我建議您使生物大寫,並像「%DIED%」也確保death_date真的爲空,請參閱如果你從兩個地方獨立獲得答案,你會得到什麼迴應?

+0

使用WHERE death_date IS NULL本身返回其death_date爲NULL的人員。 – kirkaracha 2010-11-19 16:59:35

+0

呢?在哪裏(生物)喜歡'%DIED%' – 2010-11-19 17:01:50