2
創建主動記錄查詢並調用last
其中有一個訂單使用MYSQL的order by field
會引發StatementInvalid異常。ActiveRecord - 按字段順序拋出StatementInvalid最後調用
例如:
ruby-1.9.2-p180 > User.order('field(name, \'joe\')').last
ActiveRecord::StatementInvalid: Mysql2::Error: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right
syntax to use near 'DESC, "joe") DESC LIMIT 1' at line 1:
SELECT `users`.* FROM `users` ORDER BY field(name DESC, "joe") DESC LIMIT 1
的問題是,ActiveRecord的是附加DESC
到name
的field
聲明的內部以及外部。
有沒有更好的方法,通過具有activerecord的特定列值進行排序,或者解決此問題的解決方法?
我簡化了我的示例來說明問題 - 在我的情況下,我正在對位置進行訂單,用戶郊區/城市應該是返回的第一個項目。我使用'last'的原因是我需要計算出集合中的哪個項目是另一個項目的上一個記錄。 – roo