PostgreSQL

PostgreSQL 知识量:10 - 51 - 182

5.4 模糊匹配查询><

LIKE查询- 5.4.1 -

可以使用 LIKE 操作符进行模式匹配查询。LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

以下是使用 LIKE 操作符进行查询的示例:

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

上述查询将返回所有以 "John" 开头的员工记录。% 是一个通配符,表示匹配任意字符(包括零个字符)。

还可以使用其他通配符来定义模式匹配的规则:

  • _:匹配任意单个字符。

  • [charlist]:匹配列中的指定字符集中的一个字符。

  • [^charlist]:匹配列中的不在指定字符集中的字符。

例如:

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

上述查询将返回所有以 "J" 开头,第二个字符是任意单个字符,然后是 "n" 的员工记录。

SIMILAR TO查询- 5.4.2 -

在 PostgreSQL 中,SIMILAR TO 是一种用于正则表达式模式匹配的操作符。它允许在 WHERE 子句中使用正则表达式来过滤记录。

以下是使用 SIMILAR TO 进行查询的示例:

SELECT *      
FROM employees    
WHERE name SIMILAR TO 'John%';

上述查询将返回所有以 "John" 开头的员工记录。正则表达式模式 'John%' 表示以 "John" 开头,后面跟随任意字符。

还可以使用其他正则表达式元字符和语法来定义更复杂的模式匹配规则。例如:

  • \.:匹配实际的点字符(.)。

  • [0-9]:匹配任意数字。

  • [^0-9]:匹配非数字字符。

例如:

SELECT *      
FROM employees    
WHERE name SIMILAR TO 'J[a-z]n%';

上述查询将返回所有以 "J" 开头,第二个字符是任意小写字母,然后是 "n" 的员工记录。

通过使用 SIMILAR TO 操作符和正则表达式语法,可以更加灵活地进行模式匹配查询,满足各种复杂的查询需求。