キーワードを使用した MySQL での複数のテーブル検索
質問:
次のデータベース内3 つのテーブル (メッセージ、トピック、コメント) があり、それぞれに「コンテンツ」フィールドと「タイトル」フィールドが含まれています。キーワードを使用してすべてのテーブルを LIKE 検索しますか?各結果の元のテーブルを区別するにはどうすればよいですか?
解決策:
PHP および MySQL でキーワードを使用して複数のテーブルを検索するには、UNION クエリを利用できます。 :
$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);
このクエリは、各テーブルの結果を 1 つの出力に結合します。各行に追加された「type」フィールドは、その行が作成されたテーブルの識別子として機能します。このクエリを実行した後、結果を反復処理し、「type」値に基づいて元のテーブルを決定できます。
以上がMySQL の複数のテーブルにわたってキーワード検索を実行し、元のテーブルを特定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。