我有一个充满街道地址的数据库表列。长话短说,我需要将所有街道标准化为它们的缩写形式。
例如
街道=圣等

等等

要注意的是,该表有超过10,000多个记录,并且具有任意数量的缩写/非缩写街道版本组合。是否有比以下更有效的方法:

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

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


理想情况下,Id希望针对每种街道类型进行一次查询。我还必须进行定向(N,S,E,W等)

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

调查了regexpsoundex,但坦白地讲,我对sql存储函数不满意。

PS-将同时标记为MYsql和MariaDB,但我使用最新的MariaDB版本。

最佳答案

正则表达式不是这里的解决方案,我不相信soundex 100%的时间都能做正确的工作。

我在堆叠函数时看到的唯一选择是,您只需要更新一次表。

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

关于mysql - 在MariaDB中标准化街道地址的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26926095/

10-15 01:48