2016-08-04 24 views
0

我有一列address数以千计的地址,大多有一个数字,但很多地址都没有号码,地址是这样的:如何检测地址而没有数字

- streetname 4 
- streetname 8 
- streetname 4/5 
- streetname 

我如何检测像'街道名'没有号码的字段。 我试图与:

REGEXP '^-?[0-9]+$'; 

或isANumber(),但没有给出正确的结果

+0

那是你的样品数据?有很多方式可以表达街道地址,“街道名##”只是其中之一。 – tadman

+0

在我的表中地址是这样的:“streetname ##” – papacico

+0

如果你最终试图做的是解析一个地址,这不是一个像家庭作业一样的学习练习,我会强**建议您使用像[Google Maps API](https://developers.google.com/maps/)这样的现有解决方案。有关更多详细信息,请参见[此问题](http://stackoverflow.com/questions/518210/where-is-a-good-address-parser)。有很多不同的方式可以表达地址,您将在遇到的每个边缘案例中花费其余的职业规划。 –

回答

3

你可以使用:

address rlike '^[^0-9]*$' 
+0

谢谢@Gordon Linoff给出了希望的结果 – papacico

1

下面将从端

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) 

不。

+0

这将假设OP在地址的末尾只查找数字。如果是这样,这是一个聪明的解决方案。 –

+0

谢谢@GordonLinoff - 我以为这就是问题所在。 – Hogan

1

如果wnat选择包含数

SELECT * FROM table WHERE your_column REGEXP '[0-9]'; 

行,或者如果您wnat行是不包含

SELECT * FROM table WHERE your_column NOT REGEXP '[0-9]'; 
+0

@GordonLinoff yes..correct我有更新答案 – scaisEdge