MYSQL : Position d'un enregistrement dans un recordset

WRInaute passionné
Je cale sur une requête MYSQL depuis pas mal de temps :(

J'ai une table matable avec les colonnes id,nom et catégorie.

Je veux connaitre la position de l’enregistrement ayant l'id xxx dans la categorie yyy ( SELECT id,nom from matable where categorie=yyyorder by id asc)

Merci
 
WRInaute passionné
bon, ja'i trouvé une solution à force de persévérance :mrgreen:

Code:
select id,result.pos from (SELECT id, (@i:=@i+1) as pos FROM (select @i:=0) as r, (select id from matable where categorie="yyy" order by id asc) as  v) as result where id=xxx

Si quelqu'un a plus simple :wink:
 
WRInaute occasionnel
Je ne suis pas certain d'avoir compris ce que tu cherches exactement mais j'aurais fait :

Code:
SELECT COUNT(id) FROM matable WHERE id<=xxx AND categorie=yyy GROUP BY categorie

Ce qui donne le nombre d'id de la catégorie yyy jusqu'à id = xxx et donc sa position dans la catégorie
 
WRInaute passionné
silef a dit:
Je ne suis pas certain d'avoir compris ce que tu cherches exactement mais j'aurais fait :

Code:
SELECT COUNT(id) FROM matable WHERE id<=xxx AND categorie=yyy GROUP BY categorie

Ce qui donne le nombre d'id de la catégorie yyy jusqu'à id = xxx et donc sa position dans la catégorie

Tu es un génie mec ! Je me suis cassé les c******s pour rien :wink:

Sauf que dans ton code le "group by" est inutile, le bonne requête est :

Code:
SELECT COUNT(id) FROM matable WHERE id<=xxx AND categorie=yyy order by id asc

merci
 
WRInaute occasionnel
Tu avais juste la tête dans le guidon ça t'as empêché de tourner le problème de manière simple.

Content de t'avoir aidé.
 
Discussions similaires
Haut