[resolu]updater une valeur seulement si superieure

updater une valeur seulement si superieure [resolu] - SQL/NoSQL - Programmation

Marsh Posté le 03-04-2006 à 00:43:15    

hello,  
 
J'aurai voulu savoir comment determiner un max entre deux valeurs avec MySQL. Voilà ce que j'aimerais faire :
update table set valeur = newValeur, valeur2 = newValeur2 where id= 5;
 
mais j'aimerais que cette update se fasse seulement si newValeur est superieure à valeur, un peu comme si on faisait un truc ressemblant à :
update table set valeur = max(valeur, newValeur), valeur2 = max(valeur2, newValeur2) where id = 5;
 
j'aimerai que newValeur ne soit pris en compte que si supérieur à valeur.
 
Cela est-il possible ? Avec quelle syntaxe ? merci :)


Message édité par Djebel1 le 03-04-2006 à 14:49:39
Reply

Marsh Posté le 03-04-2006 à 00:43:15   

Reply

Marsh Posté le 03-04-2006 à 11:19:41    

update table set valeur=newValeur
where newValeur>valeur  
 
???
 
Par contre tous les enregistrements vont avoir la même valeur au final si tu ne fait pas de distinction en fonction d'une clé primaire ou d'un index unique.
C'est le but de la manoeuvre ?

Reply

Marsh Posté le 03-04-2006 à 12:55:28    

non ce n'est pas le but, juste un enregistrement précis, et j'aimerai mettre à jour plusieurs champs en une fois. Du style
update table set valeur = max(valeur, newValeur), valeur2 = max(valeur2, newValeur2) where id = 5;
 
(j'ai edit mon premier message pour plus de clarté)


Message édité par Djebel1 le 03-04-2006 à 12:57:44
Reply

Marsh Posté le 03-04-2006 à 13:12:57    

Et
 
update table set valeur = if(valeur < newValeur, newValeur, valeur) where id = 5;  
 
Ca marche pas dans ton cas ?

Reply

Marsh Posté le 03-04-2006 à 14:26:08    

niquel ça marche, merci bcp :)
Vous foutez pas de moi, mais je savais pas qu'on pouvait faire des conditions en SQL  :pfff:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed