Mysql中实现提取字符串中的数字的自定义函数分享_Mysql

因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字。

该mysql提取出字符串中的数字函数如下:

复制代码 代码如下:

CREATE FUNCTION GetNum (Varstring varchar(50))
RETURNS varchar(30)
BEGIN
DECLARE v_length INT DEFAULT 0;
DECLARE v_Tmp varchar(50) default '';
set v_length=CHAR_LENGTH(Varstring);
WHILE v_length > 0 DO

IF (ASCII(mid(Varstring,v_length,1))>47 and ASCII(mid(Varstring,v_length,1))<58 )   THEN
set v_Tmp=concat(v_Tmp,mid(Varstring,v_length,1));
END IF;
SET v_length = v_length - 1;
END WHILE;
RETURN REVERSE(v_Tmp);
END;

字段使用方法,如下:

复制代码 代码如下:

select GetNum(字段)  from table

以一个字符串举例:

复制代码 代码如下:

select GetNum("dfdfd666")

结果返回:666。

并且该函数可以提取出字符串中非连贯的数字,如:

复制代码 代码如下:

select GetNum("dfdd111fd666")

结果返回:111666。

时间: 2024-09-19 05:36:03

Mysql中实现提取字符串中的数字的自定义函数分享_Mysql的相关文章

字符串截取-C#,或者在ORACLE中如何提取字符串中的信息

问题描述 C#,或者在ORACLE中如何提取字符串中的信息 C#,或者在ORACLE中如何提取字符串中的信息,比如: string a=[123][22][3132][]...以此类推,我想要提取所有[]的后2个数字,比如[123],提取出0和23两个数字,然后所有数字相加.求高手用正则表达式,或者更好理解的方式帮忙解决下,,,,

java中正则表达式提取字符串中日期实现代码

你可能需要从一段字符串String或者文本中抽取出或者说是过滤出日期或者时间,可以使用如下程序:  代码如下 复制代码 public String run(String text) {         String dateStr = text.replaceAll("r?n", " ");         dateStr = dateStr.replaceAll("\s+", " ");                   

C#中如何提取字符串中的数字

问题描述 哪位大哥教教我,像如下字符串"47.64483,-122.141197"如何将两个数字提取出来? 解决方案 解决方案二:"47.64483,-122.141197".Split("|")解决方案三:引用1楼chinajiyong的回复: "47.64483,-122.141197".Split("|") "47.64483,-122.141197".Split(",&

Lua中获取utf8字符串长度的方法和自定义函数_Lua

复制代码 代码如下: --- 获取utf8编码字符串正确长度的方法 -- @param str -- @return number function utfstrlen(str) local len = #str; local left = len; local cnt = 0; local arr={0,0xc0,0xe0,0xf0,0xf8,0xfc}; while left ~= 0 do local tmp=string.byte(str,-left); local i=#arr; wh

括号-提取字符串中多位数字

问题描述 提取字符串中多位数字 我只会提取单个字符串,多个字符就不行了 2(10)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 目标把取出括号里面的数字 例如10需要有通用型 解决方案 字符串替换 String str =" 2(10)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)"; String result = str.replace("(","").replace.(")",

c++-如何提取字符串中的字符型数字

问题描述 如何提取字符串中的字符型数字 char a[100]="delete N";//N为数字 要想把里面的N提取出来,因为N是字符串里的数字,所以应该是字符型,怎么把它转化 为整型(int)呢? 求解答! 解决方案 仅供参考 int getNum(char a[]) { int i =0,num =0; while(a[i] != '') { if( a[i] >= '0' && a[i] <= '9') num = num *10 +a[i] - '

字符串截取-C# 提取字符串中“所有”满足格式的字符串,怎么提取?

问题描述 C# 提取字符串中"所有"满足格式的字符串,怎么提取? 小弟正在做一个读取支付宝的订单的软件,读取订单不是利用官方的API,是从网页上抓取的, 每行订单信息都抓成了字符串,但是遇到了一个问题,就是如何把字符串分解了,然后保存到数据库, 值得庆幸的是,每个需要提取出来的数据 前 和后 都有规律 我一开始想的是 Regex.Match(str, "(?<= ).*?(?= )").Value; 用这个函数截取 和 之间的内容,但是只能截取到一个, 我想的

MFC怎样提取字符串中两个逗号之间 的数据

问题描述 MFC怎样提取字符串中两个逗号之间 的数据 比如字符串: "$GPGGA,024055.00,4002.2168,N,11618.1074,E,1,12,0.0,75.88,M," 怎样提取两个逗号之间的数据,例如"4002.2168"? 我试着使用例如 .Mid(17,14)函数,但是并不好用,因为字符串的长度经常会改变. 解决方案 先用CString的Find找到前后两个逗号的位置,然后在用Mid来截取.这样就可以适应动态变化的字符串 解决方案二: 参

php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符

 PHP使用正则表达式提取字符串中尖括号<>.小括号().中括号[].大括号{}中的字符示例,需要的朋友可以参考下    代码如下: $str="你好<我>(爱)[北京]{天安门}";    echo f1($str); //返回你好  echo f2($str); //返回我  echo f3($str); //返回爱  echo f4($str); //返回北京  echo f5($str); //返回天安门    function f1($str)  {