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%';

这将返回以下内容:

使用 NOT Opera器

符合搜索条件的书籍只有一本。让我们看看书名中不包含“Made”字样的书籍列表:

SELECT *
FROM
   Book
WHERE
  name NOT LIKE '%Made%';

这将返回以下内容:

使用 NOT Opera器

3行符合搜索条件。

使用 pgAdmin

现在让我们看看如何使用 pgAdmin 执行操作。

使用 % 通配符

步骤1) 登录您的 pgAdmin 帐户。

步骤2)

  1. 从左侧导航栏中单击数据库。
  2. 单击“演示”。

使用带有 % 通配符的 pgAdmin

步骤3) 在查询编辑器中输入查询:

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

步骤4) 单击执行按钮。

使用带有 % 通配符的 pgAdmin

它应该返回以下内容:

使用带有 % 通配符的 pgAdmin

要搜索名称中含有“by”的书籍:

步骤1) 在查询编辑器中键入以下命令:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

步骤2) 单击执行按钮。

使用带有 % 通配符的 pgAdmin

它应该返回以下内容:

使用带有 % 通配符的 pgAdmin

使用 _ 通配符

步骤1) 登录您的 pgAdmin 帐户。

步骤2)

  1. 从左侧导航栏中单击数据库。
  2. 单击“演示”。

使用 pgAdmin 和 _ 通配符

步骤3) 在查询编辑器中输入查询:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

步骤4) 单击执行按钮。

使用 pgAdmin 和 _ 通配符

它应该返回以下内容:

使用 pgAdmin 和 _ 通配符

步骤5) 运行第二个示例:

  1. 在查询编辑器中键入以下查询:
    SELECT *
    FROM
       Book
    WHERE
       name LIKE '%Beginner_';
    
  2. 单击执行按钮。

使用 pgAdmin 和 _ 通配符

它应该返回以下内容:

使用 pgAdmin 和 _ 通配符

使用 NOT Opera器

步骤1) 登录您的 pgAdmin 帐户。

步骤2)

  1. 从左侧导航栏中单击数据库。
  2. 单击“演示”。

使用 NOT OperapgAdmin 中的 tor

步骤3) 要查看名称不以“Post”开头的所有书籍,请在查询编辑器中键入查询:

SELECT *
FROM
   Book
WHERE
  name NOT LIKE 'Post%';

步骤4) 单击执行按钮。

使用 NOT OperapgAdmin 中的 tor

它应该返回以下内容:

使用 NOT OperapgAdmin 中的 tor

使用 NOT OperapgAdmin 中的 tor

查看书名中不含有“Made”字样的书籍列表:

步骤1) 在查询编辑器中键入以下查询:

SELECT *
FROM
   Book
WHERE
  name NOT LIKE '%Made%';

步骤2) 单击执行按钮。

使用 NOT OperapgAdmin 中的 tor

它应该返回以下内容:

使用 NOT OperapgAdmin 中的 tor

总结

  • - PostgreSQL LIKE 用于使用通配符将文本值与模式进行匹配。
  • LIKE 子句允许我们在 选择、UPDATE、INSERT 或 DELETE 语句。
  • % 通配符匹配一个或多个值。值可以是数字或字符。
  • _ 通配符只匹配一个值。该值可以是字符或数字。
  • LIKE 运算符可以与 NOT 运算符组合使用,以返回与搜索模式不匹配的任何行。

下载本教程使用的数据库

阅读更多 readmore