我在MySQL中有一個地址字符串,它已經從源代碼中混合在一起。我認爲可以使用正則表達式或其他方法將字符串分離爲可用的MySQL部分,但我不知道如何實現這一點。如何在MySQL中混合使用一個地址字符串
基本上每串看起來像這些例子(我添加了一個標記上方顯示的每個位是什麼):
<-------------><-------><-><-->
123 Fake StreetRESERVOIRVIC3001
<-----------------><--------------------><------><-><-->
Brooks Nursing Home123 Little Fake StreetSMITHTONNSW2001
<-------------------><-------------------><--- ><><-->
Grange Police StationShop 1 Fairytale LaneGRANGEWA8001
應該被分成可選的兩個地址信息行地址,郊區,州和郵政編碼。我在澳大利亞,所以州將是新南威爾士州,維多利亞州,昆士蘭州,華盛頓州,南澳大利亞州,新界,或者ACT,並且郵政編碼最後總是4位數字。
可能的解決方法是,郊區將始終爲大寫字母,狀態和郵政編碼在最後6或7個字符內(取決於狀態)是可預測的,前兩行地址信息將被打破在沒有空間特徵的情況下改變。
我有這樣的100,000條記錄,所以要通過手工完成它將是非常耗時的。任何幫助以這種方式進行編程將非常感激。
當有人提出「123 McDonald's Way?」會發生什麼?情況有所改變,不是地址部分邊界。 – 2011-02-14 02:28:23
我會用你最喜歡的腳本語言標記,像perl,python,sed和awk而不是mysql來重寫這個。分隔前兩個字段會遇到實際問題。編程語言將是更好的方法來解決這個問題。 – 2011-02-14 04:04:11