現在、私は検索機能を行っています。私のデータベースには、次のデータがあるとしましょう。
- キーワード1
- キーワード 2
- キーワード3
- キーサムシング
- 鍵
ユーザーは、検索するキーワードとして「Key」と入力しました。これは私の現在のクエリです:
SELECT * FROM data WHERE (
data_string LIKE '$key%' OR
data_string LIKE '%$key%' OR
data_string LIKE '%$key'
)
基本的に、2 つの質問があります。
類似度で並べ替える (並べ替える) 方法を教えてください。上記の例から、最初の結果として「キー」が必要でした。私の現在の結果は、Keyword1、Keyword2、Keyword3、Keysomething、Key です。
私の SQL クエリは "data_string" 列でのみ検索します。他の列を検索したい場合はどうすればよいですか? 私はこのようなことをする必要がありますか:
SELECT * FROM data WHERE (
data_string LIKE '$key%' OR
data_string LIKE '%$key%' OR
data_string LIKE '%$key'
) OR (
data_other LIKE '$key%' OR
data_other LIKE '%$key%' OR
data_other LIKE '%$key'
) -- ...
Q2 よりも優れた/高速なクエリはありますか?