gpt4 book ai didi

mysql - Active Record 的第一个方法是否按 id 排序?

转载 作者:行者123 更新时间:2023-11-29 14:57:26 26 4
gpt4 key购买 nike

当调用User.last时,Active Record看起来像按id排序。

用户负载(1.4ms)SELECT * FROM用户ORDER BY users.id DESC LIMIT 1

但是在调用 User.first 时,它不使用 order 子句。

用户负载(1.9ms)SELECT * FROM用户LIMIT 1

那么这是否保证返回具有最小 id 的用户?在实践中似乎是这样,但我不确定 MySQL 是否保证这一点。

或者您必须这样做:User.first(:order => 'id') 强制 order 子句。

编辑:我想这确实是一个 MySQL 问题。 SELECT * FROMusersLIMIT 1 是否保证返回 ID 最小的用户?

最佳答案

不确定 ActiveRecord 默认情况下会做什么,但您可以使用 ActiveRecord 的 default_scope 在模型中强制执行默认顺序。方法:

default_scope :order => "id ASC"

或者在 Rails 3 中

default_scope order("id ASC")

关于mysql - Active Record 的第一个方法是否按 id 排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4235278/

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