0
모든 레일스 ActiveRecord가 새로운 쿼리 인터페이스로 마이그레이션하는 동안 문제가 발생했습니다. 대부분은 단순하지만이 것은 더 복잡합니다.레일 3 쿼리 인터페이스 - 고급 주문
우리는 데이터베이스에서 특정 수의 프로젝트를 나열했지만 결과를 내림차순, 오름차순이 아닌 특정 순서로 반환하고자하는 문제에 직면했습니다. 이를위한 오래된 해결책은 그렇게합니다.
ids = [2,19,1,11,22]
Project.find(:all, :conditions => {:id => ids}, :order => "FIELD(id,#{ids.join(',')})")
순서가 맞춰지기 때문에 새로운 쿼리 인터페이스를 사용해보십시오.
Project.where(:id => ids).order("FIELD(id,#{ids.join(',')})")
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,1018 DESC,1017) DESC LIMIT 1' at line 1: SELECT `projects`.* FROM `projects` WHERE (`projects`.`id` IN (1018, 1017)) ORDER BY FIELD(id DESC,1018 DESC,1017) DESC LIMIT 1
'순서'는 문자열을 사용하며 항상 필드 이름 또는 필드 이름 목록으로 가정합니다.
누구나이 방법을 알고 있습니까? 많은 감사합니다. (SQL 삽입을)
RobL는