我有一列address
数以千计的地址,大多有一个数字,但很多地址都没有号码,地址是这样的:如何检测地址而没有数字
- streetname 4
- streetname 8
- streetname 4/5
- streetname
我如何检测像'街道名'没有号码的字段。 我试图与:
REGEXP '^-?[0-9]+$';
或isANumber(),但没有给出正确的结果
我有一列address
数以千计的地址,大多有一个数字,但很多地址都没有号码,地址是这样的:如何检测地址而没有数字
- streetname 4
- streetname 8
- streetname 4/5
- streetname
我如何检测像'街道名'没有号码的字段。 我试图与:
REGEXP '^-?[0-9]+$';
或isANumber(),但没有给出正确的结果
下面将从端
TRIM(TRAILING '1234567890 ' FROM fieldname)
SO
WHERE TRIM(TRAILING '1234567890 ' FROM fieldname) <> TRIM(TRAILING ' ' FROM fieldname)
删除数
有号码和
WHERE TRIM(TRAILING '1234567890 ' FROM fieldname) = TRIM(TRAILING ' ' FROM fieldname)
不。
这将假设OP在地址的末尾只查找数字。如果是这样,这是一个聪明的解决方案。 –
谢谢@GordonLinoff - 我以为这就是问题所在。 – Hogan
如果wnat选择包含数
SELECT * FROM table WHERE your_column REGEXP '[0-9]';
行,或者如果您wnat行是不包含
SELECT * FROM table WHERE your_column NOT REGEXP '[0-9]';
@GordonLinoff yes..correct我有更新答案 – scaisEdge
那是你的样品数据?有很多方式可以表达街道地址,“街道名##”只是其中之一。 – tadman
在我的表中地址是这样的:“streetname ##” – papacico
如果你最终试图做的是解析一个地址,这不是一个像家庭作业一样的学习练习,我会强**建议您使用像[Google Maps API](https://developers.google.com/maps/)这样的现有解决方案。有关更多详细信息,请参见[此问题](http://stackoverflow.com/questions/518210/where-is-a-good-address-parser)。有很多不同的方式可以表达地址,您将在遇到的每个边缘案例中花费其余的职业规划。 –