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

时间:2016-06-04 18:13:25

标签: ruby-on-rails activerecord rails-activerecord

在Rails ActiveRecord中,当我执行类似event_instances.order(:created_at)的操作而没有指定任何订单时,哪个订单是默认DESCASC

提前致谢。

1 个答案:

答案 0 :(得分:3)

根据user manuals for rails,当您指定了一个符号时,排序设置为ASC,此时指定了由数据库启动设置的字符串,默认顺序:

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

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

在DB中对订单进行排序:

Postgres

  

ASC订单是默认订单。

MySQL 5.7

  

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

SQLite

  

如果既未指定ASC或DESC,则默认情况下行按升序排序(较小的值为先)。

因此,对于所有主要数据库,dafault订单为ASC