Comment renvoyer les 5 principaux éléments de chaque catégorie dans MySQL
Renvoyer un nombre limité d'enregistrements de chaque catégorie est une exigence courante dans applications de base de données. Dans le cas spécifique du renvoi des 5 premiers éléments de menu par menu, le défi survient car la sous-requête renvoie plusieurs lignes pour chaque menu, conduisant à l'erreur « La sous-requête renvoie plus d'une ligne ».
Pour surmonter ce problème problème, une approche courante consiste à utiliser des variables à effets secondaires. Voici une requête corrigée qui corrige l'erreur :
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
Décomposition de la requête :
En utilisant des variables à effets secondaires, cette requête garantit qu'il renvoie au plus 5 enregistrements pour chaque catégorie, résolvant l'erreur d'origine.
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!