ARel
CONCAT()
및 기타 SQL 함수에 열 이름 (살균 됨, 별명이있을 수 있음 등)을 작성하는 방법이 있습니까?AREL에서 CONCAT() 등의 함수를 어떻게 사용합니까?
여기
?> name = Arel::Attribute.new(Arel::Table.new(:countries), :name)
=> #<struct Arel::Attributes::Attribute [...]
?> population = Arel::Attribute.new(Arel::Table.new(:countries), :population)
=> #<struct Arel::Attributes::Attribute [...]
?> Country.select([name, population.average]).to_sql
=> "SELECT `countries`.`name`, AVG(`countries`.`population`) AS avg_id FROM `countries`"
내가 다른 기능을 원한다면 그래서
를 (예, 난 그냥 내 질문을 설명하기 위해 노력하고, avg_id
모든 행에서 동일 할 것이라는 점을 알고있다) ... how to do it with AVG()입니다 ?
?> Country.select(xyz).to_sql # Arel::Concat.new(name, population) or something?
=> "SELECT CONCAT(`countries`.`name`, ' ', `countries`.`population`) AS concat_id FROM `countries`"
고마워요!
속편 lit' "리터럴 SQL"을 의미하는 "..."'으로 열을 선택하는 대신이 같은 상황에 대한 문자열로 해석 될 수있는 방법이있다. 이렇게하면 SQL 이스케이프가 비활성화되어 원하는 것을 삽입 할 수 있습니다. AREL이 무엇인지는 확실치 않지만 어쩌면 그 아이디어 일 수 있습니다. – tadman
나는 이것에 대해 좀 더 자세히 설명했다. –