你好,我有一個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