首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Order by used by limit和offset未按预期顺序返回结果

Order by used by limit和offset未按预期顺序返回结果
EN

Stack Overflow用户
提问于 2021-01-21 07:05:29
回答 1查看 34关注 0票数 0

我会试着回答我自己的问题,因为我还没有在互联网上找到确切的解决方案。我有一个问题,我的SQL查询返回了一个结果,在某些情况下,这里缺少一些结果。我将尝试简化SQL查询:

代码语言:javascript
复制
SELECT users.*, joined_table.sign_in_count as active_count 
FROM users ...
 JOIN ... 
WHERE ... 
ORDER BY active_count DESC LIMIT 5 OFFSET 5

假设我查询所有的表,结果是:

代码语言:javascript
复制
[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时,我希望结果是:

代码语言:javascript
复制
[2,2,2,2,2]

但我得到的结果如下:

代码语言:javascript
复制
[2,2,2,2,1] (it was missing fifth "2")

我认为问题在于,由于某些原因,在应用LIMIT 5OFFSET 5之前,ORDER BY没有正确地对记录进行排序,或者至少没有以我所期望的方式进行排序。也许是因为JOIN或类似的原因。

EN

回答 1

Stack Overflow用户

发布于 2021-01-21 07:05:29

我的问题的解决方案是将记录的id也添加到ORDER_BY。甚至-尽管它稍微改变了元素的顺序,但在某种程度上是一致的,并且没有更多意外的缺失元素。

所以,我使用的查询是:

代码语言:javascript
复制
SELECT users.*, joined_table.sign_in_count as active_count 
FROM users ...
 JOIN ... 
WHERE ... 
ORDER BY active_count DESC, id DESC LIMIT 5 OFFSET 5
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65818963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档