我在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