从表列中获取第一次出现的数字

时间:2015-03-10 10:03:58

标签: mysql

我想从表格列中获取第一次出现的数字。

举例说明:

  • 对于列值' C 62/3,Industrial Area, Phase 2',我应该得到' 62/3'
  • 对于列值' B-5 dummy, (dummy)',我应该得到' B-5'
  • 对于列值' 21 dummy - 2, dummy'我应该得到' 21'。

我试过了:

select address,SUBSTRING(address, 1, LOCATE(' ', address) - 1) AS str
from items;

1 个答案:

答案 0 :(得分:0)

好吧,我不是MySQL专家,但我认为你必须使用像mysql-udf-regexp这样的库。使用此功能,您可以获得包含REGEXP_SUBSTR的第一个包含数字的子字符串:

SELECT 
  address,          
  REGEXP_SUBSTR(address, '[[^:space:]]*[[:digit:]]+[[^:space:]]*', 1, 1) AS str
FROM items;

这是未经测试的代码,但应该让您知道如何继续。这意味着您获得任意数量的正数([[:digit:]]+),后跟任意数量的非空格([[^:space:]]*);从第一个字符开始搜索并返回第一个匹配项(,1 ,1)。