在 Postgresql 中,如何使用 like/ilike 实现带和不带重音的单独搜索结果,如下所示:
记录名称为:cafe、cafe、cafeteria
如果我使用
select name from cafe-table where name like '%cafe%';
那么结果将是cafe, café, cafeteria
但是如果我选择
%café%
(带重音)我只想要结果是café
我已经尝试过unaccent
,但它使 2 个查询的结果相同。
在 Postgresql 中,如何使用 like/ilike 实现带和不带重音的单独搜索结果,如下所示:
记录名称为:cafe、cafe、cafeteria
如果我使用select name from cafe-table where name like '%cafe%';
那么结果将是cafe, café, cafeteria
但是如果我选择%café%
(带重音)我只想要结果是café
我已经尝试过unaccent
,但它使 2 个查询的结果相同。
您可以使用unaccent模块:
安装:
CREATE EXTENSION unaccent;
然后您的查询可能如下所示:
SELECT name
FROM cafe-table
WHERE unaccent(name) like '%cafe%'; -- use unaccent here