【发布时间】:2015-03-04 15:22:01
【问题描述】:
我想将单个地址字段拆分为街道和门牌号字段。
这是一些示例数据:
Examplestreet 1
Examplestreet 1A
Examplestreet 1 B
The Examplest street 2
1st Example street 3A
1st Example street 13 A
现在,我在想我从右边开始,寻找我遇到的第一个数字,然后继续前进,直到第一个空间被包围并在那里分割。
你会得到这样的东西:
Example: 1st Example street 13 A
Start from the right: A
Find the first number: A 3
Keep going until the first space: A 31
Split here: 1st Example Street | 13A
我想在 mySQL 中单独使用它,但也可以使用 PHP。
如果您知道更好的方法,我想知道。
我开始查看 SUBSTRING_INDEX,但没有成功。
坦率地说,我不知道从哪里开始。
【问题讨论】:
-
在您的情况下,一个好的起点是在进入数据库时按照您想要的方式存储门牌号码。即使您必须使用 PHP 预先处理拆分,您也可以执行一次,而不是以后每次选择数据。
-
你的门牌号码总是在字符串的末尾,从数字开始是真的吗?
-
@Crackertastic 这是因为我正在编写一个将旧数据转换为新列的补丁。我最近在数据库中添加了 houseNumber 列,所有新数据都插入到两列中。旧数据必须转换。
-
@user4035:是的,我快速查看了数据,似乎是