📜  PostgreSQL – NOT LIKE运算符(1)

📅  最后修改于: 2023-12-03 15:03:49.346000             🧑  作者: Mango

PostgreSQL – NOT LIKE运算符

在 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|