0
0

More than 3 years have passed since last update.

LIKE句を使って検索機能を実装する

Last updated at Posted at 2020-09-28

データベースに保存されたデータを検索し、HTML上に表示する場合、基本的に「LIKE句」というものを使って実装していく。

LIKE句の使い方

モデルクラス名.where('検索するカラム名 LIKE(?)', "検索するキーワード")

ただ、これでは完璧に一致するものしか検索結果に表示することができない。
(例えばgoogleで「野球」検索した時、完全に一致しないものも(野球場、プロ野球など)検索結果に出てくる。

そのような設定にしたい場合は、
検索するキーワードの前後に%を入れてLIKE句を指定すると、文字列の中に含まれたキーワードがヒットする。

Product.where('title LIKE(?)', "%#{params[:keyword]}%")

↑の場合、タイトルの中にキーワードが含まれるデータを検索できる。

また、このほかにもデータ検索する方法がある

where('title LIKE(?)', "a%")
#↑aから始まるタイトルを検索
where('title LIKE(?)', "%b")
#↑bから始まるタイトルを検索
where('title LIKE(?)', "%c%")   
#↑cから始まるタイトルを検索
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0