繁体   English   中英

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

[英]fetch first occurrence of numbers from a table column

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

为了显示:

  • 对于列值“ C 62/3,Industrial Area, Phase 2 62/3 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;

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

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

这是未经测试的代码,但应该使您知道如何进行。 这意味着您得到任意正数位数( [[:digit:]]+ ),其后是任意数量的非空格( [[^:space:]]* ); 从第一个字符开始搜索并返回第一个出现的字符( ,1 ,1 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM