SQL查询字段不包含$ x
我想查找一个SQL查询来查找field1不包含$ x的行。 我怎样才能做到这一点?
这是什么样的领域? IN运算符不能用于单个字段,而是用于子查询或预定义列表中:
-- subquery SELECT a FROM x WHERE xb NOT IN (SELECT b FROM y); -- predefined list SELECT a FROM x WHERE xb NOT IN (1, 2, 3, 6); 
如果你正在search一个string,去LIKE操作符(但是这会很慢):
 -- Finds all rows where a does not contain "text" SELECT * FROM x WHERE xa NOT LIKE '%text%'; 
如果限制它,以便您search的string必须以给定的string开头,则可以使用索引(如果该字段上有索引)并且速度合理:
 -- Finds all rows where a does not start with "text" SELECT * FROM x WHERE xa NOT LIKE 'text%'; 
 SELECT * FROM table WHERE field1 NOT LIKE '%$x%';  (请确保您事先避免$ x,以避免SQL注入) 
 编辑: NOT IN做一些有点不同 – 你的问题是不完全清楚,所以select使用哪一个。  LIKE 'xxx%'可以使用索引。  LIKE '%xxx'或LIKE '%xxx%'不能。