当没有明确定义的顺序时,什么是默认顺序?

Sup*_*ver 2 activerecord ruby-on-rails rails-activerecord

在 Rails ActiveRecord 中,当我执行类似操作event_instances.order(:created_at)并且未指定任何顺序时,哪个顺序是默认顺序DESC还是ASC

提前致谢。

Мал*_*евъ 5

根据Rails 的用户手册,当您指定符号时,排序设置为ASC,当字符串时,指定由数据库设置的默认顺序:

User.order(:name)
=> SELECT "users".* FROM "users" ORDER BY "users"."name" ASC

User.order('name')
=> SELECT "users".* FROM "users" ORDER BY name
Run Code Online (Sandbox Code Playgroud)

DB 中的排序顺序:

为了Postgres

ASC 顺序是默认顺序。

为了MySQL 5.7

默认为升序;这可以使用 ASC 关键字显式指定。

为了SQLite

如果未指定 ASC 或 DESC,则默认情况下按升序(较小的值在前)对行进行排序。

因此,对于所有主要数据库,默认顺序是ASC