📚 目录

  1. 概述
  2. 基本语法
  3. 使用通配符 %
  4. 使用通配符 _
  5. 区分大小写与不区分大小写
  6. 使用 NOT LIKE
  7. 使用 ILIKE(不区分大小写)
  8. 参考资料

🛠️ 概述

LIKE 子句用于在 PostgreSQL 中执行模式匹配查询,尤其用于查找列中与指定模式匹配的字符串数据。LIKE 运算符允许使用通配符来匹配任意数量或单个字符。


📝 基本语法

LIKE 子句的基本语法如下:

SELECT column1, column2
FROM table_name
WHERE column_name LIKE pattern;

  • column_name:需要进行匹配的列名。
  • pattern:指定的模式,可以包括通配符。

🔍 使用通配符 %

% 是一个通配符,用于匹配任意数量的字符(包括零个字符)。它是 LIKE 子句中最常用的通配符。

示例:

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

此查询返回所有名字以字母 J 开头的员工,如 JohnJake 等。

示例:

SELECT * FROM employees
WHERE name LIKE '%son';

该查询返回所有名字以 son 结尾的员工,如 WilsonJason 等。


🧑‍💻 使用通配符 _

_ 是另一个通配符,用于匹配单个字符。与 % 不同,_ 只匹配一个字符。

示例:

SELECT * FROM employees
WHERE name LIKE '_ohn';

此查询返回所有名字为 John 类型的员工,其中 _ 匹配一个任意字符。

示例:

SELECT * FROM employees
WHERE name LIKE 'J__n';

该查询返回名字是 J 开头并以 n 结尾、且包含两个字符的员工,如 John


🧑‍💻 区分大小写与不区分大小写

在 PostgreSQL 中,LIKE 子句是区分大小写的。如果需要执行不区分大小写的模式匹配,可以使用 ILIKE

示例(区分大小写):

SELECT * FROM employees
WHERE name LIKE 'john';

此查询仅返回名字为 john 的员工(小写字母 j)。

示例(不区分大小写):

SELECT * FROM employees
WHERE name ILIKE 'john';

该查询将返回名字为 johnJohnJOHN 等的所有员工。


🚫 使用 NOT LIKE

NOT LIKE 用于查找不符合指定模式的记录。

示例:

SELECT * FROM employees
WHERE name NOT LIKE 'J%';

该查询返回所有名字不以 J 开头的员工。


📘 参考资料