在MariaDB中标准化街道地址的最佳方法

时间:2014-11-14 08:49:54

标签: mysql regex string mariadb

我有一个包含街道地址的数据库表列。长话短说我需要将所有街道标准化为缩略版本。 例如 street = St.等。

等。

该表是超过10,000多条记录,包含任意数量的缩写/非缩写街道版本组合。有没有比以下更有效的方式:

UPDATE hospital
set tiger_address = replace(street, 'Street', 'St')
;

UPDATE hospital
set tiger_address = replace(street, 'street', 'St')
;

理想情况下,我喜欢每个街道类型的一个查询。我也必须做方向性(N,S,E,W等)

只想在一个查询中处理每种街道类型(道路,林荫大道等)。是的,我知道使用'街道'作为列标题更令人困惑,但我没有设计表格。

查看regexpsoundex,但我承认我的sql存储函数生锈了。

PS - 将标记为MYsql和MariaDB,但我处理了最新的MariaDB版本。

1 个答案:

答案 0 :(得分:1)

Regexp不是解决方案,我不相信soundex会在100%的时间内做正确的工作。

我在堆叠功能时看到的唯一选择,因此您只需更新一次表。

UPDATE hospital
set tiger_address = replace(replace(replace(street, 'Street', 'St'), 'street', 'St'), 'boulevard', 'Blvd')
;