一直以为如果查询不加order by 就会默认按照自增id顺序排列呢  

偶然发现不加order by id的顺序竟然不是顺序的.

经过了解发现原来跟索引的创建方式也有关系,创建索引时,以下选项会影响结果的排序:


collate在sql中是用来定义排序规则的。排序规则其实就是当比较两个字符串时,根据某种规则来确定哪个比较大,是否相等。各个数据库支持不同的排序规则。 sqlite有三种build in的排序规则:

BINARY二进制比较,直接使用memcmp()比较
NOCASE 将26个大写字母转换为小写字母后进行与BINARY一样的比较
RTRIM 和BINARY一样,忽略结尾的空格