Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête MySQL :diminuer la valeur de 1

Vous n'avez pas besoin de devis.

UPDATE my_table SET my_field = my_field - 1 WHERE `other` = '123'

Pour comprendre, c'est comme une affectation classique dans toutes les langues :"Je veux my_field étant égal à my_field (la valeur actuelle) moins 1 .
Si vous mettez des guillemets, cela signifie "Je veux my_field étant égal à la chaîne :

  1. 'my_field-1' (pour votre première requête)
  2. 'my_field' - 1 (ce qui ne veut rien dire, du moins pour moi :qu'est-ce que le résultat d'une chaîne moins un entier ?)
  3. '-1' , qui sera converti en -1 si votre champ a le type signé INTEGER.

Dans certains cas (si vous avez des espaces ou des caractères spéciaux dans le nom de votre champ), vous pouvez entourer le nom du champ de "backticks" :

UPDATE my_table SET `my_field` = `my_field` - 1 WHERE  other = '123'