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%'
不能。