duanlipeng4136
2017-07-19 04:25
浏览 161
已采纳

Mysql拆分字符串并获取整数值

I have trouble to split string and get only numeric value those are in round bracket. I try substring_index but can't get success.

Column

prd_code

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

Required output

prd_code

100
125

Thank you.

图片转代码服务由CSDN问答提供 功能建议

我无法拆分字符串,只获取圆括号中的数值。 我尝试 substring_index ,但无法获得成功。

   prd_code 
 
HWC-4054(可提供100个)
HWC-7514(可提供125个)
HWC-1516(共80个可用)
HWC-8008(80个可用)
   \  n 
 

必需输出

  prd_code 
 
100 
125 
   
 
  

谢谢。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

4条回答 默认 最新

  • doutan5337 2017-07-19 05:46
    最佳回答

    Please check below solutions using mysql function.

    select prd_code,digits(SUBSTRING_INDEX( SUBSTRING_INDEX( prd_code , '(', -1 ), ')', 1)) as one from `your table`
    

    use below mysql function :

    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 ;
    

    reference from this

    评论
    解决 无用
    打赏 举报
查看更多回答(3条)

相关推荐 更多相似问题