【发布时间】:2017-05-20 17:30:44
【问题描述】:
我在 mysql 数据库中有几百万条记录,其中包含以下列:
company, address, url, phone, category
这是一个示例行:
Company123 - 123 Candyland St, New York, NY 12345 - http://urltothiscompany.com - 123-456-7890 - Bakery
我的问题是关于地址栏的。我想将这些行分成单独的地址、城市、州和邮政编码列:
123 Candyland St - New York - NY - 12345
但是,有些行没有街道,只有城市、州和邮政编码:
New York, NY, 1235
有没有办法在 mysql 中做到这一点?我不确定从哪里开始,因为有些行没有地址。也许从列的末尾开始计算字符?
感谢任何帮助。谢谢。
【问题讨论】:
-
我会使用你的逗号作为分隔符,并从字符串的末尾倒数。第一部分是邮编,接下来是州、城市和街道(如果存在)。阅读:stackoverflow.com/questions/2696884/…
-
我的方法是编写一个 PHP 脚本来抓取该列并在 ` - ` 上使用 PHP 的explode 函数您也可以使用
isnumeric($zip)来确保其有效,或者至少对来自加拿大的不同美国 -
如果您确定只有街道可能不存在,那么 CodeGodie 提出的解决方案是正确的。但是,如果其他字段也可能不存在,我怀疑您需要某种验证...
-
在您的示例中:第一个不带逗号 (... NY 12345) 第二个带逗号 (..., NY , 1235) 这很难进行数据切割