結論
Sequel::Mysql2::Dataset
クラスのオブジェクト*1。
具体例
0. 前提
sequel
と mysql2
の gem はインストールしてあるものとします。
$ gem install mysql2 $ gem install sequel
1. まずクライアントを定義
@db_client = Sequel.mysql2( host: '192.168.160.199', port: 60000, user: 'readonly', password: 'readonly', )
2. 生のSQLを実行
- 以下の SQL において、ヒットするレコードは 0件 とします
sql = %Q( SELECT * FROM my_table WHERE gender = 'female' ; ) result_records = @db_client.fetch(sql) #=> result_records は Sequel::Mysql2::Dataset のオブジェクトに過ぎない(nil ではない) result_records.each do |record| #=> result_records は存在しないので each されることはない @result_id = record[:id] end # result_records が存在しない場合は each がされることがなく、@result_id への代入が発生しないため、@result_id は nil になる puts @result_id #=> nil
使用例
SELECT の結果を用いた条件分岐のときに有用かと思います。
*1:例えば SELECT でヒットしなかったからといって nil が返ってきたりはしない