【问题标题】:Postgresql accent insensitive for non-accent and sensitive for accent wordPostgresql 对非重音不敏感,对重音词敏感
【发布时间】:2021-03-09 22:01:57
【问题描述】:

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

  • 记录名称为:cafe、cafe、cafeteria

  • 如果我使用select name from cafe-table where name like '%cafe%';,那么结果将是cafe, café, cafeteria

  • 但如果我选择%café%(带重音),我只想得到café

我已经尝试过unaccent,但它使 2 个查询的结果相同。

【问题讨论】:

  • ... where (name ilike '%mask%') or (unaccent('mask') = 'mask' and unaccent(name) ilike '%mask%')

标签: postgresql accent-insensitive


【解决方案1】:

您可以使用unaccent 模块:

安装:

CREATE EXTENSION unaccent;

那么您的查询可能如下所示:

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

【讨论】:

  • @Tino 这有帮助吗?请不要忘记对答案进行投票,以纪念回复者在您的问题上花费的时间。如果答案解决了您的问题,您应该另外接受:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-13
  • 2015-09-28
  • 2013-01-15
  • 2013-01-21
  • 1970-01-01
  • 2014-05-08
相关资源
最近更新 更多