一、先创建函数
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;
文章展示了如何在MySQL中创建一个自定义函数get_number,该函数用于从字符串中提取数字,并提供了测试数据进行演示。通过调用此函数,可以对包含文本的数据进行数字提取操作。

1万+

被折叠的 条评论
为什么被折叠?



