ホームページ  >  記事  >  データベース  >  MySQL の複数のテーブルにわたってキーワード検索を実行し、元のテーブルを特定するにはどうすればよいですか?

MySQL の複数のテーブルにわたってキーワード検索を実行し、元のテーブルを特定するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-23 12:32:16852ブラウズ

How to Perform a Keyword Search Across Multiple Tables in MySQL and Identify the Table of Origin?

キーワードを使用した 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。