📜  PostgreSQL – LIKE运算符(1)

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

PostgreSQL – LIKE运算符

PostgreSQL 中的 LIKE 运算符用于在 SQL 查询中进行模糊匹配。它可用于字符串匹配及其他数据类型的匹配,本文将主要介绍其字符串匹配用法。

LIKE 运算符

LIKE 运算符表示匹配操作符,在 WHERE 子句或其他地方可以使用它。在 PostgreSQL 中,LIKE 运算符使用了通配符,以便于更灵活地进行匹配。

常用的通配符有 '%' 和 '_',其中:

  • 百分号 (%):代表零个或多个字符
  • 下划线 (_):代表单个字符

举个例子:

SELECT * FROM users WHERE name LIKE 'J%';

这个查询的意思是:从表 users 中选择所有名字以 J 开头的用户(不管后面的字符是什么)。

LIKE 运算符的实例

以下示例将演示如何使用 LIKE 运算符:

-- 选择所有名字中包含 'an' 的用户
SELECT * FROM users WHERE name LIKE '%an%';

-- 选择所有名字以 'J' 开头且长度为 4 的用户
SELECT * FROM users WHERE name LIKE 'J___';

-- 选择所有邮件地址以 '.com' 结尾的用户
SELECT * FROM users WHERE email LIKE '%.com';

-- 选择所有出生日期为 2001 年的用户
SELECT * FROM users WHERE birthdate LIKE '2001%';
NOT LIKE 运算符

除了 LIKE 运算符,PostgreSQL 还提供了 NOT LIKE 运算符,它用于表示不匹配操作。示例如下:

-- 选择所有名字中不包含 'an' 的用户
SELECT * FROM users WHERE name NOT LIKE '%an%';

-- 选择所有名字不以 'J' 开头且长度为 4 的用户
SELECT * FROM users WHERE name NOT LIKE 'J___';

-- 选择所有邮件地址不以 '.com' 结尾的用户
SELECT * FROM users WHERE email NOT LIKE '%.com';

-- 选择所有出生日期不为 2001 年的用户
SELECT * FROM users WHERE birthdate NOT LIKE '2001%';
总结

本文介绍了 PostgreSQL 中 LIKE 运算符的使用方法和常见的通配符。利用 LIKE 运算符,我们可以在 SQL 查询中进行模糊匹配,从而更灵活的对数据库中的数据进行查询。