规范化 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提示:‘psql: FATAL: ”Peer authentication failed for user ”postgres“’错误