|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() ![]() Sébastien AlfaiateDéveloppeur Web Inscription : janvier 2007 Messages : 1 330 ![]() |
Bonjour,
j'ai un champ numérique que je décrémente d'un montant non fixe (-5, -6 etc...) et il faudrait que si par exemple la valeur du champ est égal à 2 et que je décrémente de 5 (2 - 5 = -3) la valeur se bloque à zero et non en négatif. Est ce possible de faire cela directement dans la requete ? Vu que je ne connais pas la valeur de ce champ à l'avance je ne peux pas comparer directement dans mon appli, sinon cela m'obligerai à executer une requete supplementaire pour recupérer cette valeur. |
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Sébastien AlfaiateDéveloppeur Web Inscription : janvier 2007 Messages : 1 330 ![]() |
Probleme résolu en utilisant la fonction mysql GREATEST((`champ`-valeur), 0)
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 983 ![]() |
Déjà tu peux rendre ce champ unsigned, ce qui signifie que les valeurs négatives ne peut être accepté mais sur quel version de Mysql es-tu. Si tu es déjà sur la version 5, tu peux placer un trigger qui dit que si la valeur est inférieur à zero elle faut zero.
Code :
Edit : Bon ben tu as trouvé encore plus simple
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Sébastien AlfaiateDéveloppeur Web Inscription : janvier 2007 Messages : 1 330 ![]() |
je suis en version 4.1 :/
et le champ peut aussi etre négatif mais seulement sous certaines conditions, et il ne peut pas l'etre lors d'une décrémentation |
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 983 ![]() |
Donc, en effet, la seul solution propre est l'utilisation de la fonction GREATEST
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com