Maison > base de données > tutoriel mysql > Comment effectuer une recherche par mot clé sur plusieurs tables dans MySQL et identifier la table d'origine ?

Comment effectuer une recherche par mot clé sur plusieurs tables dans MySQL et identifier la table d'origine ?

Linda Hamilton
Libérer: 2024-11-23 12:32:16
original
887 Les gens l'ont consulté

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

Recherche de tables multiples dans MySQL à l'aide d'un mot clé

Question :

Dans une base de données avec trois tables (messages, sujets et commentaires), chacune contenant des champs « contenu » et « titre », comment pouvons-nous effectuer une recherche LIKE dans toutes les tables en utilisant un mot clé ? Comment distinguer la table d'origine de chaque résultat ?

Solution :

Pour rechercher plusieurs tables à l'aide d'un mot-clé en PHP et MySQL, nous pouvons utiliser une requête 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);
Copier après la connexion

Cette requête rassemble les résultats de chaque table en une seule sortie. Le champ 'type' ajouté à chaque ligne sert d'identifiant pour la table dont elle provient. Après avoir exécuté cette requête, nous pouvons parcourir les résultats et déterminer la table d'origine en fonction de la valeur « type ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal