mysql排序遇到了问题
mysql order by 排序部分主键没有默认升序
请看下面的例子
有问题的
我是按照relate_data降序的,那主键ID应该自己默认是升序的,relate_data 的2 和 1 对应的ID都是升序的,但是3就不是升序的,对应3的两条ID是降序排列的
疑惑的地方
如果我把id 773448 改成7733** 排序就没有没问题
疑惑
就因为id和其他的不是7733** 的吗?我改成7735**也是会出现relate_data 3 对应的ID 也是降序的,我可以加上id asc 是可以解决的,只是很奇怪,为什么ID不同情况还不一样
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在mysql权威指南找到了解释,(我确实删除了不少数据)以后有排序的最好还是自己加上条件,不能太依赖数据库的默认排序
mysql没有承诺默认主键ID升序,一般来说mysql会按照最高效率方式排序,一般会使用主键索引所以主键会有一定次序,但mysql也没做过这样的保证,在某些情况下,主键无序更快,那么mysql不会默认主键升序。
MySQL的排序算法是不稳定排序
用InnoB