Génération de numéros de ligne pour les résultats de requête MySQL triés
Ce guide explique comment obtenir des numéros de ligne pour des données triées dans une requête MySQL. Le but est de classer les lignes par ordre croissant ou décroissant en fonction d'un critère de tri choisi. Nous utiliserons un tableau avec les colonnes itemID
et orderID
pour démontrer le comptage des commandes par article et l'attribution de classements.
La solution consiste à combiner des commandes SQL et une variable utilisateur. La requête suivante illustre la méthode :
<code class="language-sql">SET @rank:=0; SELECT @rank:= @rank + 1 AS rank, itemID, COUNT(*) AS ordercount FROM orders GROUP BY itemID ORDER BY ordercount DESC; SELECT @rank;</code>
Cette requête initialise d'abord la variable utilisateur @rank
à 0. L'instruction SELECT
récupère ensuite le classement, itemID
et le nombre de commandes pour chaque article. Les résultats sont triés par nombre de commandes par ordre décroissant.
L'instruction SELECT @rank;
finale indique le nombre total de lignes traitées. Cette technique calcule les numéros de lignes sans modifier le tableau d'origine.
Considération importante : Si vous rencontrez un ordre de lignes inattendu (comme parfois signalé), assurez-vous que la colonne ordercount
est indexée. L'indexation améliore les performances des requêtes et garantit un tri précis.
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!