Astuce MySQL : définir le rang des lignes dans les résultats d’une requète


Je farfouille souvent dans mes bases de données pour réaliser diverses tâches. A cette occasion, j’écris des requêtes SQL pour extraire des données.

Il m’arrive régulièrement d’avoir besoin de connaitre le classement d’une ligne, son rang, ce qu’on appelle habituellement le « rownum ».
MySQL n’est pas doté nativement de ce mot clé. Heureusement il existe une astuce très simple.

Il suffit de créer une variable juste avant la requête comme ceci :

SET @pos=0;
SELECT @pos:=@pos+1, t.* FROM `matable` t where monchamp = "macondition" and ... order by monchamp2

Très simple mais ca marche terriblement bien.
Une bonne astuce à garder sous le coude, d’autant qu’elle fonctionne dans PHPMyAdmin.

Vous avez plus simple ? N’hésitez pas à partager.