MYSQL中对varchar类型的数字进行排序

文章讨论了在MySQL中,当varchar类型的chapter_number字段存储包含数字的值时,如何使用CAST函数将其转换为数值类型以正确进行正序排序的问题及解决方法。作者提供了CAST()函数的使用说明和示例。
摘要由CSDN通过智能技术生成

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 
  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值