快捷搜索:

mysql 获取指定数据类型_mysql 抽取除查询结果中的指定类型数据(如数字)

实现这一功能需要应用到函数,具体如下:

新建函数getNum, 参数 str varchar(50) , 函数返回结果 varchar(50);

下图是使用navicat 建立函数的内容:

》说明:

1、ASCII(mid(str,strLength,1))是获取指定字符的ASCII码, 而十进制48至57 对应的ASCII码就是字符0-9;

2、ASCII(mid(str,strLength,1)),先mid(str,strLength,1)取字符串str中第strLength个字符; 再取ASCII()得到这个字符的ASCII码。

Mid()就是从一个字符串中取子字符串,比如a="aabbcc",我们想取出"bb"就可以用Mid("aabbcc",3,2)。

Mid有3个参数:

第一参数是要从哪个字符串中取;

第二个参数是指从第几个开始取;

第三个参数是指取几个;

3、使用REVERSE() 函数是由于拼接的temp字符里面的内容相对于原字段值来说内容是倒序的,所以需要调用REVERSE()函数将temp的内容顺序颠倒过来。

》函数调用方法举例:

SELECT CAST(getNum(file_name) AS UNSIGNED) from file_record;

file_name 字段原值为ad6e4db74fd74c3694efb85bae55a71f, 查询结果为6474743694855571

这里CAST函数不加查询结果也是一样的, CAST函数是将提取出来的数字字符串转换为特定类型,整数就是对应类型UNSIGNED,这么写单纯是一方面是规范下,另一方面也算是顺便记录下CAST的使用。

------------------------------------------------------------------------------------------------------------------------------------------

关于CAST函数语法规则是:CAST(字段名 AS 转换的类型 ),其中类型可以为:

UNSIGNED 整型

DATETIME 日期和时间型

DATE 日期型

TIME 时间型

CHAR[(N)] 字符型

DECIMAL float型

SIGNED int

举个栗子,表A有个日期字段create_time, 值为:2020-02-17 15:48:43,则使用CAST的几个不同类型查询结果如下:

(不含整型、int、float)

SELECT CAST(create_time AS DATETIME ) FROM A; 结果:2020-02-17 15:48:43

SELECT CAST(create_time AS DATE) FROM A; 结果:2020-02-17

SELECT CAST(create_time AS TIME ) FROM A; 结果:15:48:43

SELECT CAST(create_time AS CHAR) FROM A; 结果:2020-02-17 15:48:43

实现这一功能需要应用到函数,具体如下: 新建函数getNum, 参数 str varchar(50) , 函数返回结果 varchar(50); 下图是使用navicat 建立函数的内容: 》说明: 1、ASCII(mid(str,strLength,1))是获取指定字符的ASCII码, 而十进制48至57 对应的ASCII码就是字符0-9; 2、ASCII(mid(str,strLength,1)),先mid(str,strLength,1)取字符串str中第strLength个字符; 再取ASCII()得到这个字符的ASCII码。 Mid()就是从一个字符串中取子字符串,比如a="aabbcc",我们想取出"bb"就可以用Mid("aabbcc",3,2)。 Mid有3个参数: 第一参数是要从哪个字符串中取; 第二个参数是指从第几个开始取; 第三个参数是指取几个; 3、使用REVERSE() 函数是由于拼接的temp字符里面的内容相对于原字段值来说内容是倒序的,所以需要调用REVERSE()函数将temp的内容顺序颠倒过来。 》函数调用方法举例: SELECT CAST(getNum(file_name) AS UNSIGNED) from file_record; file_name 字段原值为ad6e4db74fd74c3694efb85bae55a71f, 查询结果为6474743694855571 这里CAST函数不加查询结果也是一样的, CAST函数是将提取出来的数字字符串转换为特定类型,整数就是对应类型UNSIGNED,这么写单纯是一方面是规范下,另一方面也算是顺便记录下CAST的使用。 ------------------------------------------------------------------------------------------------------------------------------------------ 关于CAST函数语法规则是:CAST(字段名 AS 转换的类型 ),其中类型可以为: UNSIGNED 整型 DATETIME 日期和时间型 DATE 日期型 TIME 时间型 CHAR[(N)] 字符型 DECIMAL float型 SIGNED int 举个栗子,表A有个日期字段create_time, 值为:2020-02-17 15:48:43,则使用CAST的几个不同类型查询结果如下: (不含整型、int、float) SELECT CAST(create_time AS DATETIME ) FROM A; 结果:2020-02-17 15:48:43 SELECT CAST(create_time AS DATE) FROM A; 结果:2020-02-17 SELECT CAST(create_time AS TIME ) FROM A; 结果:15:48:43 SELECT CAST(create_time AS CHAR) FROM A; 结果:2020-02-17 15:48:43
经验分享 程序员 微信小程序 职场和发展