Salut à tous,
J'ai un problème concernant une requête comportant des variables utilisateurs.
Je n'arrive pas à initialiser cette variable dans cette même requête.
Exemple :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT t.cmpt as cmpt, t.livre_id, t.catId FROM ( SELECT IF(@catId <> cat_id, @cmpt:=1, @cmpt:=COALESCE(@cmpt, 0)+1) as cmpt, livre_id, @catId:=cat_id AS catId FROM tableLivre ORDER BY cat_id, livre_id DESC) AS t ) WHERE cmpt < 6;
Celle-ci doit me sélectionner les 5 derniers livres enregistrés par genre.
Or, si j'exécute cette requête une 1ère fois, elle ne me retourne qu'un seul résultat pour chaque genre, alors qu'ensuite(pour la même exécution de cette requête), j'obtiens bien les 5 derniers livres de chaque groupe, le résultat souhaité.
Si j'initialise la variable @catId avant l'exécution de cette requête
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part SET @catId=0; # par exemple
J'obtiens bien le résultat correct lors de l'exécution de la requête.
Ce qui m'ennuie, c'est justement ce SET, je cherche donc à faire que la variable @catId soit initialisée à 0 sans faire un SET au préalable.
C'est pour un script en php, je ne peux donc pas faire plusieurs actions dans un mysql_query().
Si vous aviez une petite idée de comment je pourrais faire ça
Merci d'avance.
Partager