Bonjour,

J'ai une table :

ma_table
id INT AUTO_INCREMENT PRIMARY KEY,
valeur INT,
mon_bool BOOLEAN DEFAULT 0

Je voudrais parcourir l'ensemble des éléments de cette table et attribuer mon_bool = 1 si la valeur de l'id suivante est incrémentée par rapport à l'id courant et si la valeur est supérieure.

Concrétement (ça ne marche pas) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
UPTADE ma_table t1 
SET t1.mon_bool = 1 
WHERE (SELECT t2.valeur 
  FROM ma_table t2 
  WHERE t2.id = (t1.id +1) AND t2.valeur > t1.valeur);
J'ai une erreur d'impossibilité d'utiliser ma_table dans le FROM.

J'ai également pensé à un curseur, mais pour chaque valeur de ma_table parcourue, celle-ci est read only dans le curseur, je ne peux pas faire l'UPDATE.

Pouvez-vous m'aider là-dessus ?

En vous remerciant,

C. Tobini