PHP での複数のテーブル検索と MySQL およびキーワードの組み合わせ
メッセージ、トピック、コメントの 3 つのテーブルを持つデータベースがあります。各テーブルには、「コンテンツ」と「タイトル」という 2 つのフィールドが含まれています。目標は、指定されたキーワードを使用して 6 つのフィールド (messages.content、messages.title、topics.content、topics.title、comments.content、comments.title) すべてを検索する単一の検索クエリを実行することです。
これを実現するには、複数の UNION ステートメントを使用するようにクエリを変更します。各 UNION ステートメントは、LIKE 演算子を使用して、「content」フィールドと「title」フィールド内のキーワードを使用して特定のテーブルを検索します。次の更新されたクエリは、3 つの検索をすべて結合します。
$query = "(SELECT content, title, 'msg' as type FROM messages WHERE content LIKE '%" . $keyword . "%' OR title LIKE '%" . $keyword ."%') UNION (SELECT content, title, 'topic' as type FROM topics WHERE content LIKE '%" . $keyword . "%' OR title LIKE '%" . $keyword ."%') UNION (SELECT content, title, 'comment' as type FROM comments WHERE content LIKE '%" . $keyword . "%' OR title LIKE '%" . $keyword ."%')"; mysql_query($query);
このクエリは、UNION 演算子を使用して、各 SELECT ステートメントの結果を 1 つの結果セットに結合します。追加された「type」フィールドは、行がどのテーブルから作成されたかを示します。
"msg" = messages table "topic" = topics table "comment" = comments table
以上がPHP で複数のテーブル検索を MySQL およびキーワードと組み合わせるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。