Maison >base de données >tutoriel mysql >Comment récupérer les identifiants et les noms de plats séparés par des virgules pour chaque repas dans MySQL ?
Récupération de valeurs séparées par des virgules à partir de plusieurs lignes dans MySQL
Dans ce scénario, vous disposez de deux tables, DISH et DISH_HAS_DISHES, avec une -à-plusieurs relations. DISH contient des plats, tandis que DISH_HAS_DISHES stocke la relation entre les repas et les plats. Votre objectif est de récupérer les données dans un format où chaque repas comporte une liste d'identifiants et de noms de plats séparés par des virgules.
Pour y parvenir, vous pouvez utiliser la fonction GROUP_CONCAT de MySQL. Cette fonction vous permet de concaténer les valeurs de plusieurs lignes en une seule chaîne, séparées par un délimiteur spécifié. Voici comment l'utiliser pour répondre à vos besoins :
SELECT m.meal_Id, GROUP_CONCAT(dish_id) AS dish_ids, GROUP_CONCAT(dish_name) AS dish_names FROM DISH_HAS_DISHES m JOIN DISH d ON (m.dish_id = d.dish_id) GROUP BY meal_Id
Dans cette requête :
La clause GROUP BY regroupe les résultats par repas_Id, garantissant que les valeurs séparées par des virgules sont regroupées en fonction de chaque repas.
Le résultat de cette requête sera être un tableau à trois colonnes :
Cela vous fournira le résultat souhaité, où chaque repas a ses identifiants et noms de plats respectifs dans une seule virgule séparée. chaîne.
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!