質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

763閲覧

Rails + AWS + RDS + Mysql 全カラムを対象にした部分一致検索(あいまい検索)を短く記載する

lyzmfeqpxs54

総合スコア237

Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/09/02 02:17

編集2020/09/02 06:12

いつもお世話になっております。

現在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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

そのユースケースが気になりますが、、、
パッと思いつくのは、3つですね。
・動的にActiveRecordやSQLを組み立てる
・全部のカラムの内容を入力した、カラムを作ってそのカラムに対してlike検索する
・ElasticSearchを使う
とかですかね。

いずれの場合もRailsで実装経験がないので、方針を示すだけになりますが。
2番目のはすぐにできそうですね。
1番目のは、モデルのカラム名が取得できるので、それを使えばできそう。という感覚ですが、いろいろ応用できると思うので、チャレンジする価値はありそう。
3番目はインフラも絡むので、時間かかりそう。gemもあったので早くできるかも。

参考程度に。

投稿2020/09/02 17:05

Cojiro

総合スコア539

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lyzmfeqpxs54

2020/09/16 01:26

返信が遅くなり申し訳ありません。 いろいろ考えたのですがご教示いただいた ・全部のカラムの内容を入力した、カラムを作ってそのカラムに対してlike検索する という方法が一番手軽かつ、正しい結果が得られそうでしたので、こちらの方法で進めていきたいと思います。 また何かありました際にご教示いただけましたら幸いです。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問