いつもお世話になっております。
現在Rails + AWS + RDS + Mysqlの構成でWebページを作成しております。
フォームから送られてきた検索ワードをUserテーブルのすべてのカラムから部分一致検索を行い、その結果を表示したいと考えております。
カラム数が2個の場合の部分一致検索は以下のような形である程度短く実装できているのですが、カラム数が50個などと増えてきた場合にその分すべてを書かなければならず、もっと短く書くことはできないかと思いこちらに質問させていただきました。
調べ方が悪いとは思うのですが、ググっても分からず……。
参考になるサイトでも構いませんので、適切な方法をご教示いただけますと幸いです。
よろしくお願いいたします。
ruby
1 2search = "abc" 3 4# カラム数が2個の場合は以下でできる 5User.where('column1 LIKE ? OR column2 LIKE ?', "%#{search}%", "%#{search}%") 6 7# カラム数が50個の場合は以下のようにとてつもなく長くなってしまう 8User.where('column1 LIKE ? OR column2 LIKE ? OR column3 ...... column49 LIKE ? OR column50 LIKE ?', "%#{search}%", "%#{search}%" ...... "%#{search}%", "%#{search}%") 9 10#以下のようなイメージで短く書きたい 11User.where('全カラム対象 LIKE ?', "%#{search}%") 12 13
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/16 01:26