PostgreSQL LIKE, Not Like, 通配符 (%, _ ) 示例
PostgreSQL LIKE 操作符帮助我们使用通配符将文本值与模式进行匹配。可以匹配搜索表达式与模式表达式。
如果匹配发生,LIKE 操作符将返回 true。借助 LIKE 操作符,可以在 SELECT、UPDATE、INSERT 或 DELETE 语句的 WHERE 子句中使用通配符。
通配符
只有两个通配符可以与
- 百分号 (%)
- 下划线 (_)
百分号 (%) 用于表示零个、一个或多个字符或数字。
下划线通配符 (_) 用于表示一个字符或数字。这些符号也可以组合使用。如果 LIKE 操作符不与这两个符号一起使用,它将像等于操作符一样工作。
语法
LIKE 操作符的语法如下:
expression LIKE pattern [ ESCAPE 'escape-character' ]
表达式是字符表达式,如列或字段。
模式是带有模式匹配的字符表达式。
escape-character 是一个可选参数。它允许测试通配符字符(如 % 和 _)的字面实例。如果未提供,则 \ 将被用作转义字符。
使用 % 通配符
正如我们之前所说,% 符号匹配零个、一个或多个字符或数字。考虑下表
Book
我们想要一本名字类似“Lear…”的书,要得到这个结果,我们可以运行以下命令
SELECT * FROM Book WHERE name LIKE 'Lear%';
这将返回以下内容
书找到了。
让我们搜索名字中包含“by”的书
SELECT * FROM Book WHERE name LIKE '%by%';
这将返回以下内容
使用 _ 通配符
正如我们之前所说,_ 符号表示一个字符或数字。它可以按如下方式使用:
SELECT * FROM Book WHERE name LIKE '_earn%';
这将返回以下内容
这是另一个例子
SELECT * FROM Book WHERE name LIKE '%Beginner_';
这将返回以下内容
使用 NOT 操作符
当 LIKE 操作符与 NOT 操作符结合使用时,将返回任何不匹配搜索模式的行。例如,要查看名字不以“post”开头的书,我们可以运行以下命令
SELECT * FROM Book WHERE name NOT LIKE 'Post%';
这将返回以下内容
只有一本书符合搜索条件。让我们看看那些名字中不包含“Made”一词的书名列表
SELECT * FROM Book WHERE name NOT LIKE '%Made%';
这将返回以下内容
3 行符合搜索条件。
使用 pgAdmin
现在让我们看看如何使用 pgAdmin 执行这些操作。
使用 % 通配符
步骤 1) 登录您的 pgAdmin 账户。
步骤 2)
- 在左侧的导航栏中,点击 Databases。
- 点击 Demo。
步骤 3) 在查询编辑器中输入查询
SELECT * FROM Book WHERE name LIKE 'Lear%';
步骤 4) 点击 Execute 按钮。
它应该返回以下内容
搜索名字中包含“by”的书
步骤 1) 在查询编辑器中键入以下命令
SELECT * FROM Book WHERE name LIKE '%by%';
步骤 2) 单击执行按钮。
它应该返回以下内容
使用 _ 通配符
步骤 1) 登录您的 pgAdmin 账户。
步骤 2)
- 在左侧的导航栏中,点击 Databases。
- 点击 Demo。
步骤 3) 在查询编辑器中输入查询
SELECT * FROM Book WHERE name LIKE '_earn%';
步骤 4) 点击 Execute 按钮。
它应该返回以下内容
步骤 5) 运行第二个例子
- 在查询编辑器中键入以下查询
SELECT * FROM Book WHERE name LIKE '%Beginner_';
- 点击 Execute 按钮。
它应该返回以下内容
使用 NOT 操作符
步骤 1) 登录您的 pgAdmin 账户。
步骤 2)
- 在左侧的导航栏中,点击 Databases。
- 点击 Demo。
步骤 3) 要查看所有名字不以“Post”开头的所有书,请在查询编辑器中键入查询
SELECT * FROM Book WHERE name NOT LIKE 'Post%';
步骤 4) 点击 Execute 按钮。
它应该返回以下内容
查看名字中不包含“Made”一词的书名列表
步骤 1) 在查询编辑器中键入以下查询
SELECT * FROM Book WHERE name NOT LIKE '%Made%';
步骤 2) 单击执行按钮。
它应该返回以下内容
摘要
- PostgreSQL LIKE 用于使用通配符将文本值与模式进行匹配。
- LIKE 子句允许我们在 SELECT、UPDATE、INSERT 或 DELETE 语句中使用通配符。
- 百分号 (%) 通配符匹配一个或多个值。这些值可以是数字或字符。
- 下划线 (_) 通配符正好匹配一个值。该值可以是字符或数字。
- LIKE 操作符可以与 NOT 操作符结合使用,以返回任何不匹配搜索模式的行。