2016-10-27 7 views
0

SQLコードをSeqelに変換してスクリプトから実行しようとしています。これをどのように変換しますか:未処理のSQLクエリをSequelに配置する方法

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

into Sequel?または、生のSQLをSequelに渡す方法はありますか?また、school_districtsは、#{table_name}に補間されます。

+0

これはSequelのチートシートに記載されています。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メソッドを使用することをお勧めします。

関連する問題