Maison > base de données > tutoriel mysql > Comment effectuer une recherche multi-tables basée sur des mots-clés en PHP et MySQL ?

Comment effectuer une recherche multi-tables basée sur des mots-clés en PHP et MySQL ?

Linda Hamilton
Libérer: 2024-11-14 19:07:02
original
810 Les gens l'ont consulté

How to Perform a Keyword-Based Multi-Table Search in PHP and MySQL?

PHP MySQL : recherche multi-tables avec un mot-clé

Trouver des résultats à partir de plusieurs tables dans une base de données MySQL à l'aide d'un mot-clé peut être un défi . Dans cet article, nous abordons le problème de la recherche dans « messages.content », « messages.title », « topics.content », « topics.title », « comments.content » et « comments.title » à partir de trois éléments distincts. tables ("messages", "sujets" et "commentaires") à l'aide de l'opérateur "LIKE".

Requête pour une recherche multi-table :

Pour effectuer une En effectuant une recherche sur plusieurs tables, nous pouvons utiliser l'opérateur UNION. La requête suivante combine les résultats de chaque table :

$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

Identification de l'origine des résultats de la table :

Une fois les résultats obtenus, nous avons besoin d'un moyen de déterminer le table d'où provient chaque ligne. Pour cela, nous avons ajouté une colonne 'type' à chaque ligne, indiquant le nom de la table ('msg' pour 'messages', 'topic' pour 'topics' et 'comment' pour 'comments'). Après avoir exécuté la requête, les résultats sont accessibles et triés en fonction de la colonne « type » pour isoler les lignes de tables spécifiques.

Exemple d'utilisation :

Supposons que nous vous avez un mot-clé « exemple » et souhaitez trouver tous les résultats correspondants. La recherche multi-tables renverra toutes les lignes où le mot-clé apparaît dans les champs « contenu » ou « titre » de l'une des trois tables. Nous pouvons ensuite utiliser la colonne 'type' pour regrouper et afficher les résultats séparément pour chaque tableau.

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