Postgresql对非重音不敏感,对重音词敏感

Postgresql对非重音不敏感,对重音词敏感,postgresql,accent-insensitive,Postgresql,Accent Insensitive,在Postgresql中,如何使用like/ilike实现带重音和不带重音的单独搜索结果,如下所示: SELECT name FROM cafe-table WHERE unaccent(name) like '%cafe%'; -- use unaccent here 记录的名字是:咖啡馆,咖啡馆,自助餐厅 如果我使用从cafe表中选择名称,其中的名称类似于“%cafe%”然后结果将是咖啡馆,咖啡馆,自助餐厅 但是如果我用%café%(带重音)选择,我只希望结果是café 我已

在Postgresql中,如何使用like/ilike实现带重音和不带重音的单独搜索结果,如下所示:

SELECT name 
FROM cafe-table 
WHERE unaccent(name) like '%cafe%'; -- use unaccent here
  • 记录的名字是:咖啡馆,咖啡馆,自助餐厅

  • 如果我使用
    从cafe表中选择名称,其中的名称类似于“%cafe%”然后结果将是
    咖啡馆,咖啡馆,自助餐厅

  • 但是如果我用
    %café%
    (带重音)选择,我只希望结果是
    café

我已经尝试了
uncent
,但它使两个查询的结果相同。

您可以使用该模块:

安装:

CREATE EXTENSION unaccent;
那么您的查询可能如下所示:

SELECT name 
FROM cafe-table 
WHERE unaccent(name) like '%cafe%'; -- use unaccent here

。。。其中(名称类似于“%mask%”或(uncent(“mask”)=“mask”和uncent(名称)类似于“%mask%”)
@Tino是否提供了此帮助?请别忘了投票表决一个答案,这是对回答者花在你的问题上的时间的尊重。如果答案解决了您的问题,您应该另外接受:)