在android中,数据库操作使用的是SQLite,字段为varchar属性时,排序就会按照字符串的规则就行排序。有11和2,那么11 会排到2前面,不能达到按照数值的顺序排序。

对这组数据按照number进行排序,正常写
SELECT * FROM Student order by number
执行后显示如下,并没有按照1,2,11,21进行排序。

达到正常的排序,需要将number进行格式化
SELECT * FROM Student order by cast(number as '9999')
运行后显示如下

达到了预期的效果。
还有一种方法,字段属性改为int。
网友评论