0

サイト内検索をしたい。問題は、検索したい 3 つの列があり、検索クエリがこれらのフィールドのいずれかである場合、結果に行が表示されることです。つまり、誰かが「キーワード 1 キーワード 2 キーワード 3」を検索した場合、検索する列はページ名、タイトル、説明です。したがって、キーワード 1 がタイトルのみ、キーワード 2 が名前のみ、キーワード 3 が説明のみの場合、それは妥当な結果でしょう。

この背後にあるロジックを理解することはできません。OR演算子を使用してSQLで正規表現を使用しようとしましたが、タイトル、名前、または説明のいずれかにすべてのキーワードが必要でした。これを達成する方法はありますか?

4

1 に答える 1

2

MySQL LIKE IN()?を見てください。

スペースを | に置き換えることができます。str_replace を使用して、次のようなクエリを作成します。

SELECT * from mytable where pagename REGEXP 'keyword1|keyword2|keyword3' and title REGEXP 'keyword1|keyword2|keyword3' and description REGEXP 'keyword1|keyword2|keyword3';
于 2013-06-10T05:57:40.140 に答える