- 更新日: 2014年6月7日
- Rails
ActiveRecord の where メソッドで IN と != / NOT LIKE を AND で組み合わせて使う
スポンサーリンク
ActiveRecord で IN と != や IN と NOT LIKE を AND でつなげて書きたかったのですが、普通に where 句をつなげて書くと AND 検索の SQL になります。
【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
スポンサーリンク
— 環境 —
rails-4.0.1
IN と != を AND でつなげる
IN と != を AND でつなげる例。タイムゾーンが東京か大阪で、Eメールが空でないユーザーを取得します。
1 2 3 4 5 |
pry(main)> timezones = ['Tokyo', 'Osaka'] pry(main)> users = User.where(time_zone: timezones).where.not(email: '') User Load (0.8ms) SELECT `users`.* FROM `users` WHERE `users`.`time_zone` IN ('Tokyo', 'Osaka') AND (`users`.`email` != '') |
IN と NOT LIKE を AND でつなげる
IN と NOT LIKE を AND でつなげる例。タイムゾーンが東京か大阪で、Eメールが “hoge@example.com” のような 〜@example.com のメールアドレスではないユーザーを取得します。NOT LIKE と %(ワイルドカード)を使う。
1 2 3 4 5 |
pry(main)> timezones = ['Tokyo', 'Osaka'] pry(main)> users = User.where(time_zone: timezones).where('email NOT LIKE ?', '%@example.com') User Load (0.6ms) SELECT `users`.* FROM `users` WHERE `users`.`time_zone` IN ('Tokyo', 'Osaka') AND (email NOT LIKE '%@example.com') |
便利です。
スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
>> 次の記事 : Rails でコントローラーとビューの共通メソッドを作成
<< 前の記事 : RailsのActionMailerでメール送信
- Rails の関連記事
- RailsでMySQLパーティショニングのマイグレーション
- Rails ActiveRecordでdatetime型カラムのGROUP BY集計にタイムゾーンを考慮する
- RailsプラグインGemの作成方法、RSpecテストまで含めたrails pluginの作り方
- RailsでAMPに対応するgemをリリースしました
- Railsでrequest.urlとrequest.original_urlの違い
- Railsでwheneverによるcronバッチ処理
- Google AnalyticsのRails Turbolinks対応
- Railsアプリにソーシャル・シェアボタンを簡単設置
- Rails監視ツール用にErrbitをHerokuで運用
- Facebook APIバージョンのアップグレード手順(Rails OmniAuth)
Leave Your Message!