par
FloBaoti » 10 mai 2007, 17:37
Salut à tous,
Alors je voudrais faire un truc qui ne me parait pas extraordinaire mais qui me pose un petit problème.
J'ai une table du genre:
nom, ordre
bla1, 1
bla2, 2
bla3, 3
bla4, 4
bla5, 5
Et je voudrais modifier le champ
ordre en faisant
+1 à un enregistrement, et
-1 à un autre.
Par exemple si je veux classer
bla3 avant
bla2, je fais
+1 à
bla2 et
-1 à
bla3.
J'ai essayé ça:
Code : Tout sélectionner
UPDATE table t1, table t2 SET t1.ordre=t1.ordre-1, t2.ordre=t2.ordre+1 WHERE t1.nom='bla3' AND t2.ordre=t1.ordre+1
Mais ça me modifie
3 enregistrements ! Je suppose que c'est parce que
t1.ordre est modifié, ça fait une fois la requete avant de modifier et une fois modifié.
Evidemment, il ne veux pas entendre parler de LIMIT...
Est-ce que vous avez une idée, comment faire ça en une requete ?
Merci beaucoup par avance!
Cordialement,
Flo.
Salut à tous,
Alors je voudrais faire un truc qui ne me parait pas extraordinaire mais qui me pose un petit problème.
J'ai une table du genre:
[b]nom, ordre[/b]
[i]bla1, 1
bla2, 2
bla3, 3
bla4, 4
bla5, 5[/i]
Et je voudrais modifier le champ [b]ordre[/b] en faisant [b]+1[/b] à un enregistrement, et [b]-1[/b] à un autre.
Par exemple si je veux classer [i]bla3[/i] avant [i]bla2[/i], je fais [b]+1[/b] à [i]bla2[/i] et [b]-1[/b] à [i]bla3[/i].
J'ai essayé ça:
[code]UPDATE table t1, table t2 SET t1.ordre=t1.ordre-1, t2.ordre=t2.ordre+1 WHERE t1.nom='bla3' AND t2.ordre=t1.ordre+1[/code]
Mais ça me modifie [b]3 enregistrements[/b] ! Je suppose que c'est parce que [b]t1.ordre[/b] est modifié, ça fait une fois la requete avant de modifier et une fois modifié.
Evidemment, il ne veux pas entendre parler de LIMIT...
Est-ce que vous avez une idée, comment faire ça en une requete ?
Merci beaucoup par avance!
Cordialement,
Flo.