我会试着回答我自己的问题,因为我还没有在互联网上找到确切的解决方案。我有一个问题,我的SQL查询返回了一个结果,在某些情况下,这里缺少一些结果。我将尝试简化SQL查询:
SELECT users.*, joined_table.sign_in_count as active_count
FROM users ...
JOIN ...
WHERE ...
ORDER BY active_count DESC LIMIT 5 OFFSET 5假设我查询所有的表,结果是:
[3,2,1,2,2,1,2,1,3,2,1,3,3,1,3] (so, five 1's , five 2's and five 3's)当我应用ORDER BY active_count DESC LIMIT 5 OFFSET 5时,我希望结果是:
[2,2,2,2,2]但我得到的结果如下:
[2,2,2,2,1] (it was missing fifth "2")我认为问题在于,由于某些原因,在应用LIMIT 5和OFFSET 5之前,ORDER BY没有正确地对记录进行排序,或者至少没有以我所期望的方式进行排序。也许是因为JOIN或类似的原因。
发布于 2021-01-21 07:05:29
我的问题的解决方案是将记录的id也添加到ORDER_BY。甚至-尽管它稍微改变了元素的顺序,但在某种程度上是一致的,并且没有更多意外的缺失元素。
所以,我使用的查询是:
SELECT users.*, joined_table.sign_in_count as active_count
FROM users ...
JOIN ...
WHERE ...
ORDER BY active_count DESC, id DESC LIMIT 5 OFFSET 5https://stackoverflow.com/questions/65818963
复制相似问题