2014-11-14 68 views
0

我有一個充滿街道地址的數據庫表列。長話短說我需要將所有的街道標準化爲他們的縮寫版本。 對於實施例 街道=聖等在MariaDB中標準化街道地址的最佳方法

美中不足的是該表是超過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版本。

回答

1

Regexp不是這裏的解決方案,我不會相信soundex會在100%的時間內完成正確的工作。

我在堆疊函數中看到的唯一選擇,這樣您只需更新表格一次。

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