规范化 postgresql 中的人名

Posted

技术标签:

【中文标题】规范化 postgresql 中的人名【英文标题】:Normalize human names in postgresql 【发布时间】:2020-11-27 08:08:16 【问题描述】:

规范化 postgresql 表中的文本字段的最简单方法是什么?

我正在尝试查找重复项。 例如,我想将 O'Reilly 视为 oreilly 的副本。 La Salle 也应该是 la'salle 的副本。

简而言之,我们想要

    小写所有文本, 条纹口音 剥离标点符号,例如[.'-_] 和 带状空间

这一切都可以通过一两个简单的步骤完成吗?理想情况下使用内置的 postgresql 函数。

干杯

【问题讨论】:

【参考方案1】:

以下内容将为您提供所需的内容,仅使用标准 Postgres 函数;

regexp_replace (lower(unaccent(string_in)),'[^0-9a-z]','','g')

参见示例here。或者如果你不想要数字只是

regexp_replace (lower(unaccent(string_in)),'[^a-z]','','g')

【讨论】:

以上是关于规范化 postgresql 中的人名的主要内容,如果未能解决你的问题,请参考以下文章

postgres 错误:Postgresql 11.6 中的列不存在错误

Postgresql:如何为postgres中的相同时间戳选择“媒体”列中的最大值?

PostgreSQL分布式事务配置

错误:Postgresql 中的日期/时间字段值超出范围

PostgreSQL提示:‘psql: FATAL: ”Peer authentication failed for user ”postgres“’错误

postgres安装数据库集群初始化失败(Postgresql Version 9.4.4)