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);
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!