📅  最后修改于: 2023-12-03 15:03:49.346000             🧑  作者: Mango
在 PostgreSQL 中,NOT LIKE
运算符用于在 WHERE 子句中过滤不匹配的数据。与 LIKE
运算符不同,NOT LIKE
运算符只返回不匹配的行。
以下是 NOT LIKE 运算符的语法:
SELECT column1, column2, ...
FROM table_name
WHERE column_name NOT LIKE pattern;
这里,
column1, column2, ...
:要检索的列的名称table_name
:要检索数据的表的名称column_name
:要在其中查找数据的列的名称pattern
:用于匹配的模式假设我们有一个 students
表,其中包含以下数据:
| id | name | | --- | ------------ | | 1 | John Doe | | 2 | Jane Smith | | 3 | Bob Johnson | | 4 | Anna Jackson | | 5 | Tom Harris |
下面的查询将返回所有不包含 'Smith' 的学生的记录:
SELECT *
FROM students
WHERE name NOT LIKE '%Smith%';
这将产生以下输出:
| id | name | | --- | ------------ | | 1 | John Doe | | 3 | Bob Johnson | | 4 | Anna Jackson | | 5 | Tom Harris |
NOT LIKE
运算符与 LIKE
运算符一样,可以使用通配符来匹配模式。以下是一些通配符:
%
:匹配零个或多个字符_
:匹配一个字符[character_list]
:匹配指定字符列表中的任何一个字符[^character_list]
:不匹配指定字符列表中的任何一个字符例如,以下查询将返回所有不以 'J' 开头,也不以 'n' 结尾的学生的记录:
SELECT *
FROM students
WHERE name NOT LIKE 'J%na';
这将产生以下输出:
| id | name | | --- | --------- | | 5 | Tom Harris|