PostgreSQL LIKE、Not Like、通配符 (%, _ ) 示例
- PostgreSQL LIKE 运算符帮助我们使用通配符将文本值与模式进行匹配。可以将搜索表达式与模式表达式进行匹配。
如果匹配,LIKE 运算符将返回 true。借助 LIKE 运算符,可以在 SELECT、UPDATE、INSERT 或 DELETE 语句的 WHERE 子句中使用通配符。
通配符
只有两个通配符可以一起使用
- 百分号 (%)
- 下划线 (_)
百分号 (%) 用于表示零个、一个或多个字符或数字。
下划线通配符 (_) 用于表示一个字符或数字。这些符号也可以组合使用。如果 LIKE 运算符不与这两个符号一起使用,它将充当等号运算符。
句法
以下是 LIKE 运算符的语法:
expression LIKE pattern [ ESCAPE 'escape-character' ]
表达式是一个像列或字段一样的字符表达式。
模式是具有模式匹配的字符表达式。
escape-character 是可选参数。它允许测试通配符(例如 % 和 _)的文字实例。如果没有提供,则将使用 \ 作为转义符。
使用 % 通配符
正如我们之前所说,% 符号匹配零个、一个或多个字符或数字。请考虑下表:
书:
我们想要名字像“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 Opera器
当 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)
- 从左侧导航栏中单击数据库。
- 单击“演示”。
步骤3) 在查询编辑器中输入查询:
SELECT * FROM Book WHERE name LIKE 'Lear%';
步骤4) 单击执行按钮。
它应该返回以下内容:
要搜索名称中含有“by”的书籍:
步骤1) 在查询编辑器中键入以下命令:
SELECT * FROM Book WHERE name LIKE '%by%';
步骤2) 单击执行按钮。
它应该返回以下内容:
使用 _ 通配符
步骤1) 登录您的 pgAdmin 帐户。
步骤2)
- 从左侧导航栏中单击数据库。
- 单击“演示”。
步骤3) 在查询编辑器中输入查询:
SELECT * FROM Book WHERE name LIKE '_earn%';
步骤4) 单击执行按钮。
它应该返回以下内容:
步骤5) 运行第二个示例:
- 在查询编辑器中键入以下查询:
SELECT * FROM Book WHERE name LIKE '%Beginner_';
- 单击执行按钮。
它应该返回以下内容:
使用 NOT Opera器
步骤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) 单击执行按钮。
它应该返回以下内容:
总结
- - PostgreSQL LIKE 用于使用通配符将文本值与模式进行匹配。
- LIKE 子句允许我们在 选择、UPDATE、INSERT 或 DELETE 语句。
- % 通配符匹配一个或多个值。值可以是数字或字符。
- _ 通配符只匹配一个值。该值可以是字符或数字。
- LIKE 运算符可以与 NOT 运算符组合使用,以返回与搜索模式不匹配的任何行。