Bonjout. Peut-t-on connaitre la position d'un id selon le trie ?

Exemple, il y a 30 enregistrements dans une table et je veux afficher le 28ième de la liste sans connaître le ID.

Comme le CRUD peut faire changer la position d'un ID, j'ai besoin de connaître la position.

Exemple, qui est à la position 28 de ma table SQL et quelle est son ID.

SELECT COUNT(id) FROM table
pour compter le nombre d'enregistrement
et faire ressortir la position de chaque id qu'est-ce qui manque dans la requete?

Pour obtenir ceci:

position 1 c'est le ID ?
position 2 c'Est le ID ?
ETC.

1 réponse


Tu vas devoir faire une pagination de taille 1, tout simplement.

Ici, le problème vient du fait que la requête va différer avec le type de BDD que tu utilises.
Exemple en MySQL :

SELECT * FROM enseignants
LIMIT 1 OFFSET 27;

Cette requête te permet de récupérer le 28 enseignant, si tu veux le 3ème, tu remplaces la valeur de l'OFFSET par 3 - 1, donc 2.

Cependant, si tu veux la liste de tes enseignants avec le numéro de ligne, c'est légèrement différents, tu vas devoir utiliser la fonction ROW_NUMBER() :

SELECT *, ROW_NUMBER() OVER(PARTITION BY id) AS row_num   
FROM enseignants;

PS : Cet exemple va mettre le numéro de ligne en fonction de l'ID, ça reste à adapter selon tes choix