我想做一个选择,排除以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/

10-11 01:43