EN FR

MariaDB / MySQL: générer un numéro de ligne

Il n'existe actuellement pas de fonction intégrée pour compter les lignes retournées par une requête. La solution est d'utiliser une variable qui est incrémentée dans chaque ligne de résultat, comme ceci:

@ligneActuelle := @ligneActuelle + 1 AS numeroLigne

Nous pouvons utiliser une commande JOIN pour initialiser notre variable sans avoir besoin de SET:

JOIN (SELECT @ligneActuelle := 0) ligne

Une autre notation est de remplacer JOIN par une virgule:

, (SELECT @ligneActuelle := 0) ligne

Voici un exemple de requête complète:

SELECT
    titre,
    texte,
    @ligneActuelle := @ligneActuelle + 1 AS numeroLigne
FROM articles
JOIN (SELECT @ligneActuelle := 0) ligne

Source [EN]

"Upgrade to Firefox" bannerSupport La Quadrature du Net!Soutenir FramasoftSupport the Gooseberry project, Blender Foundation's 5th Open Movie project