小编典典

字段不包含 $x 的 SQL 查询

all

我想找到一个 SQL 查询来查找 field1 不包含 $x 的行。我怎样才能做到这一点?


阅读 108

收藏
2022-08-03

共1个答案

小编典典

这是一个什么样的领域?IN 运算符不能与单个字段一起使用,但旨在用于子查询或预定义列表:

-- subquery
SELECT a FROM x WHERE x.b NOT IN (SELECT b FROM y);
-- predefined list
SELECT a FROM x WHERE x.b NOT IN (1, 2, 3, 6);

如果您正在搜索字符串,请使用 LIKE 运算符(但这会很慢):

-- Finds all rows where a does not contain "text"
SELECT * FROM x WHERE x.a NOT LIKE '%text%';

如果您限制它以使您要搜索的字符串必须以给定字符串开头,它可以使用索引(如果该字段上有索引)并且相当快:

-- Finds all rows where a does not start with "text"
SELECT * FROM x WHERE x.a NOT LIKE 'text%';
2022-08-03