首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql拆分字符串并只获得整数值。

Mysql拆分字符串并只获得整数值。
EN

Stack Overflow用户
提问于 2017-07-19 04:25:39
回答 4查看 2.4K关注 0票数 1

我很难分割字符串,只得到数字值我试过substring_index,但没有成功。

代码语言:javascript
复制
prd_code

HWC-4054 (100 Pcs available)
HWC-7514 (125 pcs available)
HWC-1516 (total 80 pcs available)
HWC-8008 (80pcs available)

所需输出

代码语言:javascript
复制
prd_code

100
125

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-07-19 05:46:57

请使用mysql函数检查下面的解决方案。

代码语言:javascript
复制
select prd_code,digits(SUBSTRING_INDEX( SUBSTRING_INDEX( prd_code , '(', -1 ), ')', 1)) as one from `your table`

使用下面的mysql函数:

代码语言:javascript
复制
DELIMITER |
CREATE FUNCTION digits( str CHAR(32) ) RETURNS CHAR(32)
BEGIN
 DECLARE i, len SMALLINT DEFAULT 1;
 DECLARE ret CHAR(32) DEFAULT '';
 DECLARE c CHAR(1);

 IF str IS NULL
 THEN 
   RETURN "";
 END IF;

 SET len = CHAR_LENGTH( str );
 REPEAT
   BEGIN
     SET c = MID( str, i, 1 );
     IF c BETWEEN '0' AND '9' THEN 
       SET ret=CONCAT(ret,c);
     END IF;
     SET i = i + 1;
   END;
 UNTIL i > len END REPEAT;
 RETURN ret;
END |
DELIMITER ;

this参考资料

票数 1
EN

Stack Overflow用户

发布于 2017-07-19 05:44:58

刚才我想解决你的问题,请注意:

代码语言:javascript
复制
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('HWC-4054 (100 Pcs available)','(',-1),' ',1)

这只是代码片段,您需要检查它是否适合您的项目。

票数 2
EN

Stack Overflow用户

发布于 2017-07-19 04:37:27

您可以使用PATINDEX

代码语言:javascript
复制
SELECT SUBSTRING(Your_FieldName, PATINDEX('%[0-9]%', Your_FieldName), LEN(Your_FieldName))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45180955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档