如何从MySQL查询中的文本数据中提取数值

时间:2015-04-02 14:36:36

标签: mysql

我有一个包含地址的表。我想执行查询以选择数值匹配的行。

address1        postcode
13 Some Road    SW1 1AA
House 5         G3 7L

e.g

select * from addresses where numeric(address1)=13 and numeric(postcode)=11

^^这将匹配第一行

select * from addresses where numeric(address1)=5 and numeric(postcode)=37

^^那将匹配第二行

这可能吗?

2 个答案:

答案 0 :(得分:1)

是的,这是可能的。您可以编写一个使用正则表达式的函数,用空字符替换字段中的所有非数字字符,这样结果将只是从该函数返回的数字字符,然后对该函数进行过滤。

您可能对此stackoverflow question和此blog post感兴趣。

另见mysql-udf-regexp

答案 1 :(得分:0)

select * from addresses where address1 REGEXP '(13)' and postcode REGEXP '(11)';