(转)mysql按字段排序 按照字段的数值大小排序,而非 ascii码排序

本文介绍在MySQL中如何正确地对VARCHAR类型的字段进行数值排序,避免了按照ASCII码排序的默认行为,提供了有效的解决方法,包括使用加0或乘1的方式转换字段为数值型再排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:http://www.cnblogs.com/codefly-sun/p/5898738.html

 

 

如果是varchar类型, 排序后是这样的:

就是对mysql数值字符串类型进行排序,在默认情况下使用order by 字段名称 desc/asc 进行排序的时候,mysql进行的排序规则是按照ASCII码进行排序的,并不会自动的识别出这些数据是数值

 

,百度了一下,发现对于这种情况,可以采用 

1

2

3

order by 字段名称+0 desc/asc的形式进行排序(亲测有效)

 

 

order by 字段名称*1 desc/asc的形式进行排序( 亲测有效 )

如果varchar中存在这种 1  02  3  04  05  上述操作之后, 依旧 会按照数值大小排序的.

如下:

 

 

请根据自己情况进行更改. 这种其实设计表的结构最好定义成 number类型????

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值