PostgreSQL LIKE、Not Like、通配符 (%, _ ) 示例
⚡ 智能摘要
PostgreSQL LIKE 函数使用两个通配符(百分号和下划线)将文本与特定模式进行匹配。本教程演示如何在 SELECT 语句中使用 LIKE 和 NOT LIKE,并提供 psql 和 pgAdmin 的示例代码。

此 PostgreSQL 样 LIKE 运算符使用通配符将文本值与模式进行匹配。如果搜索表达式与模式匹配,则 LIKE 返回 true通配符在以下情况下有效: WHERE 的条款 SELECT, UPDATE, INSERT 或 DELETE.
是什么 PostgreSQL 通配符?
PostgreSQL 支持两个 LIKE 通配符:
- 百分号(
%): 匹配零个、一个或多个字符或数字。 - 下划线(
_): 正好匹配一个字符或数字。
这两个符号可以组合在同一个模式中。如果 LIKE 不使用任何通配符,它的行为类似于等号 (=) 操作员。
PostgreSQL LIKE 语法
LIKE 的基本语法是:
expression LIKE pattern [ ESCAPE 'escape-character' ]
- 表达 — 字符表达式,通常是列名或字段名。
- 模式 — 包含通配符的字符表达式。
- 转义字符 — 可选。允许您匹配字面值
%or_字符。省略时,反斜杠(\) 是默认的转义字符。
PostgreSQL 就像使用 % 通配符一样
此 % 符号匹配零个、一个或多个字符。请考虑以下情况。 Book 表:
要查找书名以“Lear”开头的书籍,请运行以下查询。
SELECT *
FROM
Book
WHERE
name LIKE 'Lear%';
查询结果如下:
查找书名中包含“by”的书籍:
SELECT *
FROM
Book
WHERE
name LIKE '%by%';
查询结果如下:
PostgreSQL 带有_通配符的点赞
此 _ 符号匹配一个字符。以下查询查找以任意单个字母开头,后跟“earn”,再后跟任意后缀的名称:
SELECT *
FROM
Book
WHERE
name LIKE '_earn%';
查询结果如下:
另一个例子——匹配任何以“Beginner”加上一个额外字符结尾的文本:
SELECT *
FROM
Book
WHERE
name LIKE '%Beginner_';
查询结果如下:
PostgreSQL 不喜欢 Opera器
将 LIKE 与 NOT 结合使用,返回符合条件的行。 不会 找出符合规律的书籍。例如,列出所有书名不以“Post”开头的书籍:
SELECT *
FROM
Book
WHERE
name NOT LIKE 'Post%';
查询结果如下:
只有一本书符合条件。现在列出所有书名符合条件的书。 不会 包含“Made”一词:
SELECT *
FROM
Book
WHERE
name NOT LIKE '%Made%';
查询结果如下:
有三行满足条件。
使用 pgAdmin 的 LIKE 功能
同样的查询也可以在 pgAdmin 的查询工具中以图形方式运行。
pgAdmin 中的通配符
步骤1) 登录 pgAdmin。
步骤2) 在左侧导航栏中,单击 数据库,然后点击 演示.
步骤3) 在查询编辑器中输入查询语句:
SELECT *
FROM
Book
WHERE
name LIKE 'Lear%';
步骤4) 点击 演练:.
结果窗格显示匹配的书籍:
要搜索书名中包含“by”的书籍:
步骤1) 在查询编辑器中输入以下内容:
SELECT *
FROM
Book
WHERE
name LIKE '%by%';
步骤2) 点击 演练:.
结果窗格显示:
pgAdmin 中的通配符
步骤1) 登录 pgAdmin。
步骤2) 在左侧导航栏中,单击 数据库,然后点击 演示.
步骤3) 在查询编辑器中输入查询语句:
SELECT *
FROM
Book
WHERE
name LIKE '_earn%';
步骤4) 点击 演练:.
结果窗格显示:
步骤5) 运行第二个示例:
- 在查询编辑器中输入查询语句:
SELECT *
FROM
Book
WHERE
name LIKE '%Beginner_';
- 点击 演练:.
结果窗格显示:
与 pgAdmin 不同
步骤1) 登录 pgAdmin。
步骤2) 在左侧导航栏中,单击 数据库,然后点击 演示.
步骤3) 要列出所有书名不以“Post”开头的书籍,请键入:
SELECT *
FROM
Book
WHERE
name NOT LIKE 'Post%';
步骤4) 点击 演练:.
结果窗格显示:
列出书名中不包含“Made”一词的书籍:
步骤1) 在查询编辑器中输入以下内容:
SELECT *
FROM
Book
WHERE
name NOT LIKE '%Made%';
步骤2) 点击 演练:.
结果窗格显示:























