Maison >base de données >tutoriel mysql >Comment obtenir l'index d'enregistrement (numéro de ligne) dans une table MySQL ?

Comment obtenir l'index d'enregistrement (numéro de ligne) dans une table MySQL ?

DDD
DDDoriginal
2024-12-16 01:04:09661parcourir

How to Get the Record Index (Row Number) in a MySQL Table?

Obtention de l'index des enregistrements dans une table MySQL

Dans MySQL, les tables contiennent souvent un grand nombre d'enregistrements. Il peut être utile d'avoir une colonne contenant l'index de l'enregistrement, ou la position de la ligne, pour chaque ligne d'un tableau. Cela peut être utilisé à diverses fins, telles que le classement des utilisateurs ou l'affichage de la position d'un enregistrement particulier dans une séquence.

Solution

Pour générer une colonne contenant l'index d'enregistrement, vous pouvez utiliser une combinaison de variables définies par l'utilisateur et une instruction de jointure. Voici un exemple :

SELECT  l.position, 
        l.username, 
        l.score,
        @curRow := @curRow + 1 AS row_number
FROM    league_girl l
JOIN    (SELECT @curRow := 0) r;

Dans cette requête :

  • La variable @curRow est initialisée à 0 à l'aide de l'instruction (SELECT @curRow := 0).
  • L'instruction JOIN garantit que la variable @curRow est incrémentée de 1 pour chaque ligne de league_girl table.
  • La colonne row_number contient l'index d'enregistrement pour chaque ligne de la table.

Exemple d'utilisation

Considérez la table league_girl suivante :

position username score
1 a 10
2 b 25
3 c 75
4 d 25
5 e 55
6 f 80
7 g 15

La requête suivante renvoie l'index de l'enregistrement, le nom d'utilisateur et le score pour toutes les lignes de league_girl table avec un score supérieur à 50 :

SELECT  l.position, 
        l.username, 
        l.score,
        @curRow := @curRow + 1 AS row_number
FROM    league_girl l
JOIN    (SELECT @curRow := 0) r
WHERE   l.score > 50;

Le résultat de cette requête est :

position username score row_number
3 c 75 1
5 e 55 2
6 f 80 3

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