Fonction MySQL MAX () pour comparer les valeurs numériques dans une mise à jour?
Lors de la mise à jour d'une ligne, je veux avoir un construit-dans la case de faire quelques vérifications de limites. La plupart des langues ont un MAX() pour renvoyer le maximum des arguments passés, mais MySQL semble utiliser MAX() pour quelque chose d'autre. Par exemple:
UPDATE person SET dollars = MAX(0, dollars-20) WHERE id=1
Je veux soustraire 20 dollars de personne id 1, mais je ne veux pas de dollars à jamais être représenté par une valeur négative, alors je veux un construit en comparaison avec 0. Ce travail? Ou est-il un autre moyen? Merci!
source d'informationauteur DivideByHero
Vous devez vous connecter pour publier un commentaire.
MySQL prend en charge une fonction appelée
PLUS()
. Il renvoie la plus grande valeur parmi une liste de ses arguments.Ce n'est pas une fonction standard ANSI SQL, donc ne comptez pas sur qu'il soit disponible dans d'autres marques de base de données SQL. Si vous avez besoin d'un fournisseur indépendant de la solution, utiliser le
CASE
syntaxe suggéré par d'autres. Mais si tout ce que vous devez utiliser est de MySQL, cette fonction est plus concis.