mysql排序,同样的语句 查询结果不一样的问题

一个项目,某段数据顺序出现异常导致运行异常。早期没有问题,用开发版本也没有问题,同样的查询排序语句在mysql客户端执行也没有问题。

这个排序不一致问题,这里记录下。

 

如下查询语句,根据‘order’字段 降序 排序的。

SELECT * FROM test.test_only ORDER BY `order` DESC

mysql排序,同样的语句 查询结果不一样的问题

 

 

注:上图非mysql客户端正式运行结果,为方便说明的截图。这个现象在项目中容易出现,但在客户端中运行多次也没出现。
问题:如上图,同样的sql查询排序,得到的结果不一致。
原因:从图中也没清晰看出,两次结果也是符合排序语句的,只是用于排序的字段存在重复,导致重复的部分存在随机排序。
解决:在加一层排序即可。如:SELECT * FROM test.test_only ORDER BY `order` DESC,id DESC

 

 mysql排序,同样的语句 查询结果不一样的问题

 

 

延申:如上备注,这个问题在项目中容易出现,在mysql客户端中没有出现。

比较多的认为是缓存的原因:和数据库系统算法有关。这边的项目(禅道)情况 也存在与之相关,项目在开发环境中没有问题,在生产环境中出现该问题。在生产环境中,早期也没有问题。数据量变大后出现问题了,生产环境配置不高,因为系统仅公司内部使用。

mysql排序,同样的语句 查询结果不一样的问题

上一篇:Ubuntu安装数据库


下一篇:MySql表的约束