首页 > 解决方案 > 规范化 postgresql 中的人名

问题描述

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

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

简而言之,我们想要

  1. 小写所有文本,
  2. 带口音
  3. 剥离标点符号,例如这些[.'-_]
  4. 剥离空间

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

干杯

标签: postgresqlcontactstext-normalization

解决方案


下面将给你你想要的,只使用标准的 Postgres 函数;

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

请参见此处的示例。或者如果你不想要数字只是

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

推荐阅读