MySQL对varchar类型数字进行排序的实现方法
作者:墨如初见
1.问题描述
表中,字段:chapter_number 为varchar,存的值为1,2,3,4,5,10,11,12数字,进行按正序排序时,返回的数据为1,10,11,12,2,3,4,5
2.解决方法
your_column :你的字段名
CAST(your_column AS SIGNED);
举例:
your_table: 你的表名
your_column:你的字段名
SELECT * FROM your_table ORDER BY CAST(your_column AS SIGNED);
3.CAST方法说明
MySQL CAST()函数用于将值从一种数据类型转换为另一种特定数据类型。 CAST()函数接受两个参数,即要转换的值和需要将该值转换为的数据类型。
可以转换给定值的数据类型为:
DATE:用于将值转换为DATE数据类型。返回的格式为“YYYY-MM-DD”。
DATETIME:用于将值转换为DATETIME数据类型。返回的格式为“ YYYY-MM-DD HH:MM:SS”。
TIME:用于将值转换为TIME数据类型。返回的格式为“HH:MM:SS”。
CHAR:用于将值转换为CHAR数据类型。
SIGNED:用于将值转换为SIGNED数据类型。
UNSIGNED:用于将值转换为UNSIGNED数据类型。
BINARY:用于将值转换为BINARY数据类型。
用法:
CAST(input_value AS datatype)
使用的参数:
input_value –用于指定需要转换的值。
datatype –它用于指定需要在其中转换值的数据类型。
返回值:
转换后,MySQL CAST()函数返回所需数据类型的值。
受支持的MySQL版本:
MySQL 5.7
MySQL 5.6
MySQL 5.5
MySQL 5.1
MySQL 5.0
MySQL 4.1
MySQL 4.0
MySQL 3.23
示例1:实现CAST()函数以将值转换为DATE数据类型。
SELECT CAST("2019-11-21" AS DATE); 输出:2019-11-21
示例2:实现CAST()函数以将值转换为CHAR数据类型。
SELECT CAST(121 AS CHAR); 输出:121
示例3:实现CAST()函数以将值转换为SIGNED数据类型。
SELECT CAST(2-4 AS SIGNED); 输出:-2
示例4:实现CAST()函数以将值转换为UNSIGNED数据类型。
SELECT CAST(2-4 AS UNSIGNED); 输出:18446744073709551614
以上就是MySQL对varchar类型数字进行排序的实现方法的详细内容,更多关于MySQL varchar数字排序的资料请关注脚本之家其它相关文章!