网站首页 文章专栏 MySQL字符串提取数字
mysql 去掉特殊字符(+只留下数字
MySQL 字符串提取数字、即mysql 字符串去掉里面的全部特殊字符,中文,英文,只获取数字。
1、创建MySQL存储函数 【注意 dw 为 我的 账号】
CREATE DEFINER=`dw`@`%` FUNCTION `holyrisk_string_get_number`(`str` text) RETURNS text CHARSET utf8mb4 BEGIN #Routine body goes here... # 参数 SET @str = str; # 去掉 空格 set @str = replace(@str,' ',''); SET @startNumber = 1; SET @length = CHAR_LENGTH(@str); set @result = ''; # 如果 参数 为空 直接返回 IF @length = 0 THEN RETURN @result; END IF; # 参数不为空 遍历循环 repeat BEGIN # 截取 遍历 字节 SET @strData = MID( @str, @startNumber, 1 ); IF @strData REGEXP '[0-9]' THEN SET @result =CONCAT(@result ,@strData); END IF; # 累计 set @startNumber = @startNumber+1; END; UNTIL @startNumber > @length end repeat; RETURN @result; END
2、调用说明
可以看到:
1、存储函数名称 名称为 : holyrisk_string_get_number
2、函数 需要传入一个 字符串参数 : 要处理的字符串
3、返回结果字符串
3、调用示例
1)直接调用
SELECT holyrisk_string_get_number('0123擦!@#4casda*()**56问答!@#!#asda789')
输出结果 : 0123456789
2)表字段过滤
select holyrisk_string_get_number(content) as content_number FROM sms_log
输出结果 :过滤 sms_log表的content 字段,并重命名处理结果为 content_number