Maison > base de données > tutoriel mysql > Comment sélectionner des éléments appartenant à plusieurs catégories dans MySQL ?

Comment sélectionner des éléments appartenant à plusieurs catégories dans MySQL ?

Patricia Arquette
Libérer: 2024-10-31 22:02:02
original
389 Les gens l'ont consulté

How to Select Items Belonging to Multiple Categories in MySQL?

Sélection de plusieurs correspondances de valeurs dans une colonne de base de données à l'aide de MySQL

Problème :

Vous disposez d'une table associative dans laquelle les éléments peuvent appartiennent à plusieurs catégories. Comment sélectionner uniquement les éléments qui appartiennent à un ensemble spécifié de catégories ?

Solution :

Pour sélectionner des éléments qui satisfont plusieurs valeurs spécifiques pour une colonne, il existe deux approches principales dans MySQL :

Méthode d'auto-jointure :

Cette méthode compare plusieurs lignes de la même table en une seule opération de jointure. Par exemple, pour sélectionner des éléments dans les catégories 201 et 202 :

SELECT c1.item_id
FROM item_category AS c1
INNER JOIN item_category AS c2 ON c1.item_id = c2.item_id
WHERE c1.category_id = 201 AND c2.category_id = 202
Copier après la connexion

Méthode GROUP BY :

Cette méthode regroupe les lignes par colonne et utilise COUNT() agréger pour vérifier si un élément appartient à toutes les catégories spécifiées. Par exemple, pour sélectionner des éléments dans les catégories 201 et 202 :

SELECT c.item_id, COUNT(*) AS cat_count
FROM item_category AS c
WHERE c.category_id IN (201,202)
GROUP BY c.item_id
HAVING cat_count = 2
Copier après la connexion

Le choix entre ces deux méthodes dépend du nombre de catégories que vous recherchez et de considérations de performances.

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