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