网站还在开发中,敬请期待!
时间: 2021-07-01

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、调用说明

image.png


可以看到:
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 

琼ICP备16001221号-8