你好,我有一个Rails 3.2的问题和订购。Rails 3 ORDER BY FIELD and last
当希望通过现场,电话.last
当ActiveRecord
行为古怪的命令集...
>> User.order("FIELD(id, '1')")
User Load (0.4ms) SELECT `users`.* FROM `users` ORDER BY FIELD(id, '1')
=> []
>> User.order("FIELD(id, '1')").first
User Load (0.4ms) SELECT `users`.* FROM `users` ORDER BY FIELD(id, '1') LIMIT 1
=> nil
>> User.order("FIELD(id, '1')").last
User Load (0.3ms) SELECT `users`.* FROM `users` ORDER BY FIELD(id DESC, '1') DESC LIMIT 1
Mysql2::Error: You have an error in your SQL syntax;
正如你可以看到最后调用的关系添加DESC
两次,但它应该只把它在整个ORDER BY FIELD
之后,而不是在括号内。
有没有人有一个想法如何做到这一点?
谢谢!
呀,有时ActiveRecord的不能“反向”你'ORDER'指令,你必须做到这一点。 – tadman