我想做出一个选择,排除以07,0256和0356开头的条目。 这就是我累了:
SELECT * FROM rapoarte WHERE nrtel NOT LIKE '07%' OR nrtel NOT LIKE '0256%' OR nrtel NOT LIKE '0356%'
但它会不断选择所有条目。
答案 0 :(得分:7)
条件nrtel NOT LIKE '0256%' OR nrtel NOT LIKE '0356%'
始终为true(除非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。