sql >> Base de Datos >  >> RDS >> Mysql

Consulta Mysql:disminuir el valor en 1

No necesitas comillas.

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

Para entender, es como una afectación clásica en cualquier idioma:"Quiero my_field siendo igual a my_field (el valor actual) menos 1 .
Si pone comillas, significa "Quiero my_field siendo igual a la cadena:

  1. 'my_field-1' (para su primera consulta)
  2. 'my_field' - 1 (lo que no significa nada, al menos para mí:¿cuál es el resultado de una cadena menos un número entero?)
  3. '-1' , que se convertirá a -1 si su campo tiene el tipo INTEGER firmado.

En algunos casos (si tiene espacios o caracteres especiales en el nombre de su campo), puede rodear el nombre del campo con `comillas invertidas`:

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