order by导致分页数据错误

order by 后面的字段必须是唯一的,否则在分页查询的时候,结果可能是错误的,例如第一页的最后一条数据,可能查第二页的第一条也是该条数据,这个mysql排序导致的

示例:查询订单交易记录按交易时间排序(交易时间非唯一,即多笔订单存在相同交易时间的情况)

//查询前十条订单
select * from order_info order by trans_time desc limit 0,10;
//查询10-20条订单
select * from order_info order by trans_time desc limit 10,10;

解决办法:在order by 的条件中加上主键,使之唯一(这里id是主键)

select * from order_info order by trans_time desc,id limit 0,10;

版权声明:本文为Leo_Hth原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。