我想做一个选择,排除以070256和0356开头的条目。
这就是我厌倦的: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为空)。您需要使用和:
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。关于mysql - MySQL中不喜欢查询的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3955396/