ホームページ > データベース > mysql チュートリアル > PHP で複数のテーブル検索を MySQL およびキーワードと組み合わせるにはどうすればよいですか?

PHP で複数のテーブル検索を MySQL およびキーワードと組み合わせるにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-12 12:11:02
オリジナル
944 人が閲覧しました

How to Combine Multiple Table Searches in PHP with MySQL and a Keyword?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート