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
Libérer: 2025-01-22 00:08:11
original
491 Les gens l'ont consulté

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

SELECT itemID, COUNT(*) as ordercount
FROM orders
GROUP BY itemID
ORDER BY ordercount DESC;
Copier après la connexion

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 :
SET @rank=0;
Copier après la connexion
  1. Modifiez la requête d'origine pour utiliser des variables pour attribuer des numéros de ligne :
SELECT @rank:=@rank+1 AS rank, itemID, COUNT(*) as ordercount
FROM orders
GROUP BY itemID
ORDER BY ordercount DESC;
Copier après la connexion
  1. Exécutez une autre instruction SELECT pour récupérer le nombre final de lignes :
SELECT @rank;
Copier après la connexion

Exemple :

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

SET @rank=0;
SELECT @rank:=@rank+1 AS rank, itemID, COUNT(*) as ordercount
  FROM orders
  GROUP BY itemID
  ORDER BY ordercount DESC;
SELECT @rank;
Copier après la connexion

Sortie :

<code>1 | 388 | 3
2 | 234 | 2
3 | 693 | 1
4 | 3432 | 1
5 | 3459 | 1</code>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal