mysql 字符串中提取数字

一、先创建函数

CREATE FUNCTION get_number (param varchar(50))

RETURNS varchar(30)

BEGIN
DECLARE length INT DEFAULT 0;

DECLARE temp_str varchar(50) default '';

set length=CHAR_LENGTH(param);

WHILE length > 0 DO

IF (ASCII(mid(param,length,1))>47 and ASCII(mid(param,length,1))<58 )THEN

set temp_str = concat(temp_str,mid(param,length,1));

END IF;

SET length = length - 1;

END WHILE;

RETURN REVERSE(temp_str);

END;

创建测试表:

CREATE TABLE `test` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of test
-- ----------------------------
INSERT INTO `test` VALUES ('1', '杭上0001人调字第X号');
INSERT INTO `test` VALUES ('2', '杭上清0005人调字第X号');

调用自定义函数:

SELECT  get_number(name) from test;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值