gpt4 book ai didi

postgresql - 如何在 Postgresql 选择查询中找到所有相对重音?

转载 作者:行者123 更新时间:2023-11-29 12:36:11 25 4
gpt4 key购买 nike

我有一个名为联系人的表

 id |       name       
----+------------------
44 | Aarón

我正在尝试执行查询:

select id,name from contacts where name ilike 'Aaro%';

它返回(0行)

我正在尝试搜索“o”,并且还希望结果包含“o”的所有重音,例如“ó”。正如我做了一些谷歌搜索和 stackoverlfowing 我发现使用语言环境我需要安装排序规则。所以我在 linux 中安装了排序规则

sudo locale-gen --no-archive de_DE.utf-8

之后我尝试在 postgresql 数据库中安装排序规则。

create collation de (LOCALE='de_DE.utf-8');

排序规则生成成功。我试图通过使用 select * from pg_collat​​ion 来列出这个排序规则;它就在那里。

完成所有这些之后,我再次尝试通过查询获得所有相对重音“o”的结果:

select id,name from contacts where name ilike 'Aaro%';

但我又得到了(0 rows)

最终,当我执行上述查询时,我想要记录“Aarón”。

提前致谢。

最佳答案

您可以使用 unaccent postgres的模块。

为此,您需要在系统中安装 postgresql-contrib。您可以在基于 debian 的 linux 中使用以下命令安装它。

sudo apt-get install postgresql-contrib

之后你可以在 postgres 中创建 unaccent。

postgres_db=# create EXTENSION unaccent;
CREATE EXTENSION
postgres_db=# select name from test where unaccent(name) ilike 'Aaro%';
name
-------
Aarón
(1 row)

希望这对您有所帮助!

关于postgresql - 如何在 Postgresql 选择查询中找到所有相对重音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41137728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com