Renvoyer les 5 meilleurs éléments de chaque catégorie dans MySQL
Défi :
Récupérer le menu du top 5 éléments de chaque catégorie dans une base de données composée de deux tableaux, "menus" et "menuitems".
Solution :
Le code présenté vise à afficher les 5 premiers éléments par catégorie de menu. Cependant, il renvoie une erreur car la sous-requête récupère plusieurs lignes. Pour résoudre ce problème, des variables à effets secondaires peuvent être utilisées pour suivre la position de chaque ligne dans la catégorie.
SELECT profilename, name FROM ( SELECT m.profilename, s.name, @r:=case when @g=m.profilename then @r+1 else 1 end r, @g:=m.profilename FROM (select @g:=null,@r:=0) n cross join menus m left join menuitems s on m.menuid = s.menuid ) X WHERE r <= 5
Répartition :
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!