有谁知道%运算符对varchar有什么影响?我在一个项目中发现了这个查询,但我真的不知道它在做什么:
%
varchar
SELECT * FROM Location l where l.name % :param;
字符串我认为它具有相同的效果:
SELECT * FROM Location l where l.name LIKE '%:param%'
型但是我没有在PostgreSQL文档中找到解释。
sauutmhj1#
%是由additional module pg_trgm提供的“相似性”运算符。取text(或其它字符串类型)作为左右操作数,返回boolean:如果两个操作数足够相似,则为true,否则为false。阈值通过GUC参数pg_trgm.similarity_threshold设置。相关信息:
text
boolean
true
false
pg_trgm.similarity_threshold
不要与模运算符**%**混淆。符号相同,但数学运算符采用 numeric 类型作为左操作数和右操作数。在Posterre中,运算符由运算符名称(如%)加上左和右操作数定义。血淋淋的细节在手册第Operator Type Resolution章。临时用户几乎不需要知道这些。通常情况下,它只是工作。相关信息:
1条答案
按热度按时间sauutmhj1#
%
是由additional module pg_trgm提供的“相似性”运算符。取
text
(或其它字符串类型)作为左右操作数,返回boolean
:如果两个操作数足够相似,则为true
,否则为false
。阈值通过GUC参数pg_trgm.similarity_threshold
设置。相关信息:
不要与模运算符**
%
**混淆。符号相同,但数学运算符采用 numeric 类型作为左操作数和右操作数。在Posterre中,运算符由运算符名称(如
%
)加上左和右操作数定义。血淋淋的细节在手册第Operator Type Resolution章。临时用户几乎不需要知道这些。通常情况下,它只是工作。相关信息: