postgresql PostgresSQL WHERE查询中%和ILIKE有什么区别?

fivyi3re  于 2023-01-25  发布在  PostgreSQL
关注(0)|答案(1)|浏览(220)

问题真的说明了一切...我已经能够使用这两个,但不能告诉有什么区别。使用pg_trgm模块...

SELECT * from tbl WHERE postcode % 'w4%' LIMIT 10;

SELECT * from tbl WHERE postcode ILIKE 'w4%' LIMIT 10;
zdwk9cvp

zdwk9cvp1#

ILIKE%运算符是完全不同的。
%pg_trgm使用的相似度算子,其输出取决于设置的相似度阈值。

set pg_trgm.similarity_threshold = .6;
select 'abcdef' % 'abZZef';
--> false

set pg_trgm.similarity_threshold = .1;
select 'abcdef' % 'abZZef';

--> true

另一方面,Ilike查找(部分)字符串相等

select 'abcdef' ilike 'abc%';
--> true
select 'abcdef' ilike 'abZ%';
--> false

相关问题