mysql的order by和limit导出数据查不到
今天测试提了一个bug,数据能通过搜索条件查出来,却在列表里找不到。因为就是一个很简单的select查询,不应该啊。一共23条数据,根据总金额从大到小排列,一页10条记录,翻了两页真没有找到。看了下order by的值,都是默认的数值0,猜想可能是order by的值相等导致的,于是拿着SQL试了下。
SELECT
*
FROM
axd_distributes_summary
WHERE
user_id = 2000340903168090142
该表一共23条数据,根据userId是能找到数据的。
SELECT
*
FROM
axd_distributes_summary
WHERE
ORDER BY
user_money
LIMIT 0,10
2.根据用户金额大小倒序排列,每页10条数据,先看第一页,没找到数据。
2.第二页数据依然没找到
3.第三页就剩下三条数据了,依然没有
明明就23条数据,分页查询找不到,根据用户id搜索明明可以看到。出了前10条数据,因为测试环境都是0,后续都是0,平时一直根据创建时间排序,网上搜索了下。
当不指定order by或者order by的值相同时,该数据时不确定的,是随机的。
那么根据用户金额user_money排序的同时,再根据自增id排序: user_money desc, id asc 。测了一下,正确显示。