Maison >base de données >tutoriel mysql >Comment ajouter des numéros de ligne aux résultats SELECT triés dans MySQL ?

Comment ajouter des numéros de ligne aux résultats SELECT triés dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-22 00:08:11414parcourir

How to Add Row Numbers to Sorted SELECT Results in MySQL?

MySQL : Récupérer le numéro de ligne des résultats SELECT triés

Question :

Comment obtenir le numéro de ligne de l'élément trié dans l'instruction SELECT de MySQL ?

Contexte :

Considérons un tableau appelé « commandes » contenant les colonnes « orderID » et « itemID ». La requête ci-dessous calcule la quantité commandée par « itemID » :

<code class="language-sql">SELECT itemID, COUNT(*) as ordercount
FROM orders
GROUP BY itemID
ORDER BY ordercount DESC;</code>

Cette requête renvoie le nombre d'éléments mais pas le numéro de ligne.

Solution :

Pour récupérer le numéro de ligne, utilisez la technique suivante :

  1. Initialisez une variable pour stocker le numéro de ligne actuel :
<code class="language-sql">SET @rank=0;</code>
  1. Modifiez la requête d'origine pour utiliser des variables pour attribuer des numéros de ligne :
<code class="language-sql">SELECT @rank:=@rank+1 AS rank, itemID, COUNT(*) as ordercount
FROM orders
GROUP BY itemID
ORDER BY ordercount DESC;</code>
  1. Exécutez une autre instruction SELECT pour récupérer le nombre final de lignes :
<code class="language-sql">SELECT @rank;</code>

Exemple :

La requête suivante renvoie le numéro de ligne et le nombre d'éléments :

<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>

Sortie :

<code>1 | 388 | 3
2 | 234 | 2
3 | 693 | 1
4 | 3432 | 1
5 | 3459 | 1</code>

Le nombre final de lignes est de 5.

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!

Déclaration:
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