描述:
PostgreSQL 9.3
细绳:'ì ằ ú ề'
期望的结果: 'i a u e'
我的代码:
select translate ('ì ằ ú ề', 'ìằúề', 'iaue') ; -- it works. Result: i a u e
问题:
如果我以这种方式使用它,我必须在“ìằúề”和“iaue”之间定义手动翻译。有更好的解决方案吗?
参考:PG 文件
描述:
PostgreSQL 9.3
细绳:'ì ằ ú ề'
期望的结果: 'i a u e'
我的代码:
select translate ('ì ằ ú ề', 'ìằúề', 'iaue') ; -- it works. Result: i a u e
问题:
如果我以这种方式使用它,我必须在“ìằúề”和“iaue”之间定义手动翻译。有更好的解决方案吗?
参考:PG 文件
使用
unaccent()
由附加模块 unaccent提供。细节:
Postgres 9.5进行了重大改进:
自定义规则
如果您编辑默认规则(就像您评论的那样),任何更新(如果您自己编译,则为新编译)将覆盖您的手动更改。请务必立即备份原始规则集和您编辑的规则集。
unaccent()
函数被重载。虽然简单形式使用默认字典'unaccent'
:您可以选择具有 2 参数形式的单独字典:
我会考虑不更改默认规则集(如您评论中链接中的说明),而是另外以自定义名称安装您的规则集。这样您就可以保持默认行为,即自动接收所有更新,并且您可以在代码中清楚地看到您应用替代/扩展规则集的位置。按照手册中的说明或考虑此博客。
并考虑我上面的链接用于索引或其他需要函数不可变的上下文。