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

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.

  • 写回答

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条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?