vlambda博客
学习文章列表

mysql的order by和limit导出数据查不到

今天测试提了一个bug,数据能通过搜索条件查出来,却在列表里找不到。因为就是一个很简单的select查询,不应该啊。一共23条数据,根据总金额从大到小排列,一页10条记录,翻了两页真没有找到。看了下order by的值,都是默认的数值0,猜想可能是order by的值相等导致的,于是拿着SQL试了下。


SELECT *FROM axd_distributes_summaryWHERE user_id = 2000340903168090142
  1. 该表一共23条数据,根据userId是能找到数据的。


SELECT *FROM axd_distributes_summaryWHERE
ORDER BY user_moneyLIMIT 0,10

2.根据用户金额大小倒序排列,每页10条数据,先看第一页,没找到数据。

mysql的order by和limit导出数据查不到

2.第二页数据依然没找到

3.第三页就剩下三条数据了,依然没有


明明就23条数据,分页查询找不到,根据用户id搜索明明可以看到。出了前10条数据,因为测试环境都是0,后续都是0,平时一直根据创建时间排序,网上搜索了下。

当不指定order by或者order by的值相同时,该数据时不确定的,是随机的。

那么根据用户金额user_money排序的同时,再根据自增id排序: user_money desc, id asc  。测了一下,正确显示。