2016-10-27 4 views
0

SQL 코드를 Seqel로 변환하여 스크립트에서 실행하려고합니다. 이를 어떻게 변환합니까?Sequel에 원시 SQL 쿼리를 두는 방법

select code, count(1) as total 
from school_districts 
group by code order by total desc; 

을 Sequel로 변환 하시겠습니까? 아니면 원시 SQL을 Sequel에 전달하는 방법이 있습니까? 또한 school_districts#{table_name}으로 보간됩니다.

+0

이것은 속임수 시트에 설명되어 있습니다. http://sequel.jeremyevans.net/rdoc/files/doc/cheat_sheet_rdoc.html#label-Using+raw+SQL. 즉 원시 SQL을 사용하는 것이 도움이된다면 좋은 생각이 아닙니다. ORM의 개념은 대화하고있는 DBM과 독립적 인 쿼리를 작성할 수 있다는 것입니다. 이를 통해 코드를 변경하지 않고도 쉽게 다른 DBM으로 변경할 수 있습니다. –

+0

나는 이것을 http://stackoverflow.com/q/3144813/128421의 사본으로 닫으려고한다. –

답변

0

당신은 몇 가지 방법을 수행 할 수 있습니다

  1. 사용 [] :

    DB["your sql string"] 
    
  2. 사용 fetch을 :

    DB.fetch("your sql string") 
    
1
DB[:school_districts].select(:code).group_and_count(:code).reverse_order(:count) 

은 그 쿼리를 실행하는 연속적인 방법입니다. 그러나 카운트 컬럼의 별명은 아니지만이 작업을 수행 할 수 있기를 바랍니다.

코드를 변경하지 않고 DBM을 변경할 수 있으므로 Sequel에서 작업하는 것이 바람직하지만 fetch 메서드를 사용하는 것이 좋습니다.