今天做项目的时候,遇到个小小的问题,在数据库中查询的时候,要用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';
这个方法很不错,值得学习了!