我想做出選擇排除與07,0256和0356. 這個啓動項是我累了:問題與NOT LIKE查詢在MySQL
SELECT * FROM rapoarte WHERE nrtel NOT LIKE '07%' OR nrtel NOT LIKE '0256%' OR nrtel NOT LIKE '0356%'
,但會將所有選擇條目。
我想做出選擇排除與07,0256和0356. 這個啓動項是我累了:問題與NOT LIKE查詢在MySQL
SELECT * FROM rapoarte WHERE nrtel NOT LIKE '07%' OR nrtel NOT LIKE '0256%' OR nrtel NOT LIKE '0356%'
,但會將所有選擇條目。
條件nrtel NOT LIKE '0256%' OR nrtel NOT LIKE '0356%'
始終爲真(除非nrtel爲NULL)。您需要使用AND:
SELECT * FROM rapoarte
WHERE nrtel NOT LIKE '07%'
AND nrtel NOT LIKE '0256%'
AND nrtel NOT LIKE '0356%'
或者,如果你發現它更容易閱讀,你可以把它改寫如下:
SELECT * FROM rapoarte
WHERE NOT (
nrtel LIKE '07%' OR
nrtel LIKE '0256%' OR
nrtel LIKE '0356%'
)
表達(NOT a) OR (NOT B)
是不一樣的NOT (a OR b)
。見De Morgan's Laws。
用'AND'開關'OR',你很好走。 – Wrikken 2010-10-17 21:30:59
謝謝,我不知道爲什麼我從來沒有想過這個 – sebastian 2010-10-17 21:32:31