Mysql按数字大小排序String字段

今天做项目的时候,遇到个小小的问题,在数据库中查询的时候,要用String类型的数字进行一下排序!结果是按照字符串排序来处理的,没有达到预想中的效果!于是先是想到将字符转成数字型的,在网上搜了一下,基本上都是这样做的,只不过很多人实现的方式稍有不同而已!有的是在 ORDER BY 的时候在字段前加个减号,或者是将排序的字段加上数字 ‘1’,其做法的基本思路都是将字段转成 int 型再来比较!(注:ID字段为 varchar 类型)
如:
SELECT * FROM  Student WHERE 1 = 1 ORDER BY -ID DESC

或者:
SELECT * FROM  Student WHERE 1 = 1 ORDER BY (ID + 1) 

这样都是按照 ID 的升序排列;
同时也考虑到 ID 在数据库中存在有字符串的列,那样也不会报错,那样会将字符串处理成 '0';
这个方法很不错,值得学习了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值