最近弄了下iOS的CallKit,进行来电识别。addIdentificationEntryWithNextSequentialPhoneNumber 方法进行添加电话号。
我们知道,sql排序一个order by asc/desc即可。
but,当你把数字 比如手机号和电话号以text方式存入数据库,再order by,顺序并不是按照数字大小排序。
原因是因为字段虽然存储了数字值,但是它是一个字符型,而字符型的 电话开头的'2'等字符都 比手机的开头字符 '1'要大 。因为是从第一个字母开始比较的。
所以解决办法:
1.更改表结构,更改类型为int、integer
2.更改sql结构。 "select * from Contact order by mobile+0 asc";
后边加个0,强转成int比较即可。
转载请注明:天狐博客 » iOS开发之SQLite按数字字符串大小排序