Rails:调用 .limit(5) 更改结果顺序

2024-03-06

我有一个搜索功能,基本上运行模型记录的有序列表。问题是每当我打电话时.search.limit(5),结果的顺序与我调用时的顺序不同.search

这是我的一些方法

    def self.search(server_name, pvp_type)
          if server_name.nil?
            result = Rom::Leaderboard.order('pvp_vs desc, win_percent desc').limit(200) 
          end
    end

当我打电话时

Rom::Leaderboard.search(nil, 2).pluck(:actor_name)

SQL翻译:

SELECT "rom_leaderboards"."actor_name" FROM "rom_leaderboards" WHERE "rom_leaderboards"."pvp_type" = 2 ORDER BY pvp_vs desc, win_percent desc LIMIT 200

我得到以下结果:

[Zarglon, Lirav, adf, sdfa, Nonad, ...]

扎格隆和利拉夫有相同的pvp_vs & win_percent属性值; afd、sdfa 和 Nonad 也有同样的关系。

现在当我打电话时

Rom::Leaderboard.search(nil, 2).limit(5).pluck(:actor_name)

SQL翻译:

SELECT "rom_leaderboards"."actor_name" FROM "rom_leaderboards" WHERE "rom_leaderboards"."pvp_type" = 2 ORDER BY pvp_vs desc, win_percent desc LIMIT 5

我得到以下结果:

[Lirav, Zarglon, sfda, Nonad, adf]

这些查询都是正确的(因为搜索返回基于pvp_vs & win_percent并且两个列表的顺序都正确)。但我希望它们是一样的。由于某种原因 limit 改变了这个顺序。有办法让它们保持相同吗?


假设您尝试按第一个元素对该数组的数组进行排序:

[
  [ 1, 1 ],
  [ 1, 2 ],
  [ 1, 3 ]
]

这两个(以及其他几个)都是有效结果,因为您有重复的排序键:

[ [1,1], [1,2], [1,3] ]
[ [1,3], [1,1], [1,2] ]

您在数据库中遇到了同样的问题。你说:

扎格隆和利拉夫有相同的pvp_vs & win_percent属性值; afd、sdfa 和 Nonad 也有同样的关系。

因此,这五个值可以以任何顺序出现,并且仍然满足您指定的 ORDER BY 条件。它们甚至不必在同一查询的两次执行中以相同的顺序从数据库中出来。

如果您想要一致的排序,则需要确保结果集中的每一行都有唯一的排序键,以便一致地打破联系。这是 ActiveRecord,因此您将拥有一个独特的id可用,因此您可以使用它来打破您的订购关系:

result = Rom::Leaderboard.order('pvp_vs desc, win_percent desc, id').limit(200) 
# --------------------------------------------------------------^^

这将为您提供明确且独特的排序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails:调用 .limit(5) 更改结果顺序 的相关文章

  • Spring RESTful控制器方法改进建议

    我是 Spring REST 和 Hibernate 的新手 也就是说 我尝试组合一个企业级控制器方法 我计划将其用作未来开发的模式 您认为可以通过哪些方法来改进 我确信有很多 RequestMapping value user metho
  • IE9-11 检测变换样式:preserve-3d

    我为一个项目制作了一个 3d 类型的菜单 自然 IE 会引起问题 因为 IE10 即使 3d 变换工作 也不支持变换样式 preserve 3d 我尝试了解决方法 通过对 3d 菜单容器的每个子元素应用变换 但至少可以说 动画看起来很糟糕
  • 文本溢出:省略号显示不同的字符

    我这里遇到了一些 CSS 问题 看这张图片 https www flickr com photos 125543025 N07 saved 1 在此图像中 我为文本 INTENSE TRAINING 添加了 CSS 样式 sample st
  • 如何制作过期/签名视频嵌入网址

    我是新来的 正在学习网络开发等等 我只知道如何将我的视频嵌入网站中 任何菜鸟都可以轻松获得源代码 他们也可以嵌入它 但在许多网站中 视频 src 均使用重定向器链接进行编码 例如 它会在一段时间后过期 在本例中是一天 我了解到这是一个签名网
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • Qt 布局,在小部件大小更改后调整到最小大小

    基本上我有一个QGridLayout里面有一些小部件 最重要的是 2 个标签 我用它们将图像绘制到屏幕上 好吧 如果用户愿意 他可以更改传入图像的分辨率 从而强制标签调整大小 我们假设标签的初始大小是320x240 用户将 VideoMod
  • Python 中的字符串slugification

    我正在寻找 slugify 字符串的最佳方法 蛞蝓 是什么 https stackoverflow com questions 427102 in django what is a slug 我当前的解决方案基于这个食谱 http code
  • ASP.NET Core MVC 视图组件搜索路径

    在此处的文档中 https learn microsoft com en us aspnet core mvc views view components view aspnetcore 2 2 https learn microsoft
  • 一些基本的 PHP 问题 [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是有一些基本的 php 问题来加深我对学习的理解 但我找不到简单的答案 我有一个 php ajax 应用程序 它生成 mysql
  • If else 在 Web 网格列中

    如何在 webgrid 列中添加条件 if else grid GetHtml tableStyle table table bordered columns grid Columns grid Column RealName Name g
  • View.post(),以及当Runnables被执行时

    我最初的问题是需要知道我的根的高度和宽度View这样我就可以进行程序化的布局更改 就我的目的而言 我不一定需要在onCreate 对于我来说 以编程方式添加我的孩子就足够了View根布局完成后 因此我很乐意使用onWindowFocusCh
  • SimpleIoC - 在缓存中找不到类型:Windows.UI.Xaml.Controls.Frame

    第一次由 SimpleIoC 实例化我的 ViewModel 时 我遇到了以下错误 我相信我已经按应有的方式设置了容器 但由于某种原因 我仍然收到以下错误 任何想法或帮助将非常感激 Microsoft Practices ServiceLo
  • 将 Angular Web 组件 EventEmitter 监听到 javascript

    我在以下工具的帮助下创建了一个小型网络组件本文 https medium com IMM9O web components with angular d0205c9db08f使用角度元素 其中包括 Input and Output 我能够将
  • svn 强制迁移

    我正在考虑将我们的 svn 代码库迁移到 perforce 看看谷歌搜索结果 我确实找到了两个具有相同功能的工具 P4转换ftp ftp perforce com pub perforce tools p4convert docs inde
  • R闪亮:使用闪亮的JS从数据表中获取信息

    我想读出所有列名称以及它们在数据表中显示的顺序 由于不同的原因 我无法使用 stateSave 等选项 我对 JS 没有什么把握 但我确信用它可以完成 所以我需要你帮助我 我尝试过类似的代码片段 datatable data callbac
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用
  • 自定义字符串查询操作的 Linq to NHibernate 可扩展性?

    我希望能够在 NHibernate Linq 表达式中使用自定义字符串查询 举例来说 这只是一个例子 我希望能够选择包含属性的实体 该属性是特定字符串的字谜 var myEntities EntityRepository AllEntiti
  • Keystore getEntry 在 Android 9 上返回 NULL

    c我已对存储在 Android 密钥库中的登录密码进行了加密和解密 在 Android 9 上 我观察到应用程序在尝试解密密码时崩溃 我无法重现它 但拥有 Pixel 3 的用户是崩溃的设备之一 下面是我如何从密钥库解密密码 private
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁
  • 如何使用 dql 从数据表中获取唯一值?

    我有一个表 其中有一列存储了各种值 我想使用 dql 从该表中检索唯一值 Doctrine Query create gt select rec school gt from Records rec gt where rec city ci

随机推荐

  • 不同进程的内存地址相同

    我只是不明白为什么这段代码会这样工作 而不是我期望的 include
  • LINQ 与 FoxPro?

    有没有合理的方法使用 LINQ 访问 FoxPro 数据库 我刚刚完成实施工作 http linqtovfp codeplex com http linqtovfp codeplex com
  • Android:事件 ACTION_POWER_CONNECTED 未发送到我的 BroadcastReceiver

    我想在手机插入充电器后做一些事情 所以我 已创建ChargingOnReciever public class ChargingOnReceiver extends BroadcastReceiver public void onRecei
  • Flash 消息无法正常工作express/nodejs/ejs

    闪存消息似乎不起作用 我想我错过了一些非常明显的东西 但我已经研究了一个小时 但我仍然不知道为什么它不起作用 我的中间件 Session middleware app use session secret stuffedbagels res
  • 通过嵌套 tf.map_fn 反向传播梯度

    我想在每个向量上映射一个 TensorFlow 函数 该向量对应于具有维度的矩阵中每个像素的深度通道 批量大小 H W n 通道 换句话说 对于每个尺寸的图像H x W我在批次中拥有 我提取一些特征图F k 其数量为n channels 具
  • 无法在主线程上启动处理程序

    我正在开发 jar api 以从 Unity3D 读取 Google Fit 数据 我现在面临的问题是 当我想执行这段代码时 private void buildFitnessClient mClient new GoogleApiClie
  • 强制用户在首次使用 Devise 登录时重置密码

    预计到达时间最后更新为我当前的解决方案 我希望能够为高价值用户手动创建帐户 这意味着我们必须为他们生成密码并让他们在首次登录时更改密码 我找到了执行此操作的解决方案here https stackoverflow com questions
  • Cython setup.py 找不到已安装的 Visual C++ 构建工具

    我正在尝试使用此 setup py 文件构建我的 cython 代码 from distutils core import setup from Cython Build import cythonize import numpy as n
  • C# Linq 在嵌套数组对象中查找特定项

    我正在使用 asp net core webapi 和 azure cosmosdb 开发一个应用程序 我需要从对象列表中找到一个项目 我对 linq 没有经验 在下面的 json 中 我需要找到一个拥有 learnerId 123 的扇区
  • php xpath 与 text() 和 SimpleXMLElement->xpath 不符合 xpath 预期结果

    我正在尝试获取 td span 的所有文本节点 我正在尝试使用 xpath td span text 问题是它返回每个文本元素的所有文本节点 这里有两个 193 和 120 它返回 193120 两次 而不是单独元素中的 193 和 120
  • 获取 numpy 稀疏矩阵行的范数

    我有一个通过使用 Sklearn 的 TfidfVectorizer 对象获得的稀疏矩阵 vect TfidfVectorizer sublinear tf True max df 0 5 analyzer word vocabulary
  • 如何有效地编码/解码压缩的位置描述?

    我正在为日本象棋变体编写一个表库 为了索引表基数 我将每个国际象棋位置编码为整数 在编码步骤之一中 我对棋盘上棋子的位置进行编码 由于实际方法有点复杂 我就简单地解释一下这个问题 编码 在残局桌面中 我有 比方说 六个不同的棋子 我想将它们
  • 可空类型装箱/拆箱 - 为什么要这样实现?

    通过 C 从 CLR 中提取有关装箱 拆箱值类型的信息 关于装箱 如果可空实例不是null CLR 从可为 null 的实例中取出值并将其装箱 换句话说可空 值为5被装箱成盒装 Int32值为 5 关于拆箱 拆箱只是获取对装箱对象的拆箱部分
  • 关闭 Matplotlib 数据[重复]

    这个问题在这里已经有答案了 我正在使用 Matplotlib 和 MPLD3 创建可以在 html 页面中显示的图形 使用 django 目前 我的图表是根据从 csv 文件中提取的数据动态生成的 我经常在终端中收到此消息 运行时警告 已打
  • Android 唯一序列号

    我正在开发一个针对 Android 4 0 API 14 及更高版本的 Android 应用程序 我正在寻找每个设备唯一且永久存在的序列号 随设备一起死亡 恢复出厂设置后不会更改 我在网上找到了很多关于 Android 设备唯一标识符的结果
  • 使用 AppCompat 的 SearchView

    我在使用appcompat v7之前在Actionbar中实现了SearchView 但是当我想将 SearchView 与支持库 v7 一起使用时 它显示 null 异常 In style
  • 在C中编写位图文件头时出现问题

    我正在尝试使用 C 创建一个新的位图文件 这是 bmp 文件头的结构 define uint16 unsigned short define uint32 unsigned long define uint8 unsigned char t
  • 无法在 osx 优胜美地上制作枪图。未定义的符号

    我尝试在 os x yosemite 10 10 4 下制作 gnuplot 5 0 0 但出现错误 make Applications Xcode app Contents Developer usr bin make all recur
  • 了解 Cocoa 和 Objective-C 的引用计数

    我刚刚开始了解 Objective C 和 Cocoa 希望能够使用 iPhone SDK 我对 C 相当满意malloc and free概念 但 Cocoa 的引用计数方案让我相当困惑 有人告诉我 一旦你理解了它 它就会非常优雅 但我只
  • Rails:调用 .limit(5) 更改结果顺序

    我有一个搜索功能 基本上运行模型记录的有序列表 问题是每当我打电话时 search limit 5 结果的顺序与我调用时的顺序不同 search 这是我的一些方法 def self search server name pvp type i