gpt4 book ai didi

ruby-on-rails-3 - 为什么 Rails ActiveRecord last 方法按 id 排序而 first 不排序?

转载 作者:行者123 更新时间:2023-12-04 07:09:43 24 4
gpt4 key购买 nike

根据 this , ActiveRecord first生成 SQL:

SELECT * FROM clients LIMIT 1

而 ActiveRecord last生成 SQL:
SELECT * FROM clients ORDER BY clients.id DESC LIMIT 1
first上的行为根据我的观点,这是不正确的,而在 last 上这是。如果不指定顺序,简单的 SELECT 会以任意或不可预测的顺序返回。因此, first不保证始终返回相同的记录(如果不是具有最小 id 的记录)。

有没有人知道,为什么 Rails ActiveRecord 这样工作?

提前致谢
帕纳约蒂斯

最佳答案

由于我在这篇文章中没有得到任何答案,所以我试图从其他论坛上的其他人那里找到答案。我相信 ActiveRecord(或 mysql gem)有一个错误。 Rick James 说如果我们想获得最小 id,我们应该使用 order by 和 limit。 Here is his answer :

http://forums.mysql.com/read.php?22,530328,530514#msg-530514

关于ruby-on-rails-3 - 为什么 Rails ActiveRecord last 方法按 id 排序而 first 不排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10426352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com