PostgreSQL '%' 运算符

PostgreSQL '%' operator

有谁知道 % 运算符对 varchar 有什么影响?

我在一个项目中发现了这个查询,但并不知道它在做什么:

SELECT * FROM Location l where l.name % :param;

我认为它具有相同的效果:

SELECT * FROM Location l where l.name LIKE '%:param%'

但是我没有在 PostgreSQL 文档中找到解释。

% is the "similarity" operator, provided by the additional module pg_trgm

它以text(或其他字符串类型)作为左右操作数和returns booleantrue如果两个操作数足够相似,false 如果没有。使用 GUC 参数 pg_trgm.similarity_threshold.

设置阈值

相关:

不要与 modulo operator % 混淆。相同的符号,但数学运算符将 numeric 类型作为左右操作数。

在 Postgres 中,运算符由运算符名称(如 %)加上左右操作数定义。手册章节 Operator Type Resolution 中的详细信息。临时用户几乎不需要知道这些。通常它只是有效。

相关:

  • Can PostgreSQL index array columns?