Comment utiliser MAX dans un SET en MYSQL
clodinfo
-
clodinfo -
clodinfo -
Bonjour à tous,
J'essaye de mettre à jour une valeur dans une base de données MySQL de telle sorte que l'une des colonnes (val2) contiennent la valeur maximale atteinte pour cet enregistrement (val0) par une autre colonne (val1) qui peut être incrémentée ou décrémentée (un peu comme un thermomètre qui conserverait les valeurs MIN et MAX du mois).
La première méthode, qui marche très bien, consiste à faire un SELECT pour récupérer les valeurs actuelles val1 et val2 de l'enregistrement val0, d'incrémenter val1, de prendre le MAX de val1 et de val2 (en PHP) puis de faire un UPDATE de val1 et val2 avec le résultat, mais cela fait 2 appels à la base ...
J'ai donc essayé de ne le faire qu'en une seule fois, avec la ligne suivante :
UPDATE table SET val1=val1+1,val2=MAX(val1,val2) WHERE val0='test'
mais ça ne marche pas, j'ai un message d'erreur 1064 sur le MAX.
Il me semblait pourtant que l'on pouvait utiliser l'instruction MAX dans un SET. Je n'ai rien trouvé de ce style sur le net ... Quelqu'un comprend-il où est l'erreur ?
Merci à vous,
Clod
J'essaye de mettre à jour une valeur dans une base de données MySQL de telle sorte que l'une des colonnes (val2) contiennent la valeur maximale atteinte pour cet enregistrement (val0) par une autre colonne (val1) qui peut être incrémentée ou décrémentée (un peu comme un thermomètre qui conserverait les valeurs MIN et MAX du mois).
La première méthode, qui marche très bien, consiste à faire un SELECT pour récupérer les valeurs actuelles val1 et val2 de l'enregistrement val0, d'incrémenter val1, de prendre le MAX de val1 et de val2 (en PHP) puis de faire un UPDATE de val1 et val2 avec le résultat, mais cela fait 2 appels à la base ...
J'ai donc essayé de ne le faire qu'en une seule fois, avec la ligne suivante :
UPDATE table SET val1=val1+1,val2=MAX(val1,val2) WHERE val0='test'
mais ça ne marche pas, j'ai un message d'erreur 1064 sur le MAX.
Il me semblait pourtant que l'on pouvait utiliser l'instruction MAX dans un SET. Je n'ai rien trouvé de ce style sur le net ... Quelqu'un comprend-il où est l'erreur ?
Merci à vous,
Clod
A voir également:
- Comment utiliser MAX dans un SET en MYSQL
- Comment utiliser chromecast sur tv - Guide
- Driver max - Télécharger - Pilotes & Matériel
- Utiliser iphone comme webcam - Guide
- Comment utiliser teamviewer - Guide
- Comment utiliser wetransfer - Guide