我想做出选择排除与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