作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是下面的查询
SELECT * FROM items WHERE field1 NOT LIKE '%a%' AND NOT LIKE '%b%' AND
NOT LIKE '%c%'
相当于
SELECT * FROM items WHERE field1 NOT IN ('a', 'b', 'c');
一般来说,在 MySQL 查询中排除某些字符串值的最佳方法是什么?
最佳答案
它们不等价,因为第一个会匹配:
Mike
Tom
因为上面的单词中没有A、B、C。但不是
Apple Cobler
其中包含 A、B 和 C。第二个将匹配除以下内容之外的任何内容:
a
b
c
我认为您的第二个查询(NOT IN)是排除某些字符串的更好方法,前提是您不需要对可能的值进行通配符匹配。请注意,LIKE 子句在性能方面更昂贵,因为它必须对每一行进行直接评估,而不是仅仅命中索引。
关于MySQL NOT IN 和 NOT LIKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124634/
我是一名优秀的程序员,十分优秀!