Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta MySQL:diminua o valor em 1


Você não precisa de citações.
UPDATE my_table SET my_field = my_field - 1 WHERE `other` = '123'

Para entender, é como uma afetação clássica em qualquer idioma:"Eu quero my_field sendo igual a my_field (o valor atual) menos 1 .
Se você colocar aspas, significa "Eu quero my_field sendo igual à string:
  1. 'my_field-1' (para sua primeira consulta)
  2. 'my_field' - 1 (o que não significa nada, pelo menos para mim:qual o resultado de uma string menos um inteiro?)
  3. '-1' , que será convertido em -1 se seu campo tiver o tipo com sinal INTEGER.

Em alguns casos (se você tiver espaços ou caracteres especiais no nome do seu campo), você pode cercar o nome do campo com `backticks`:
UPDATE my_table SET `my_field` = `my_field` - 1 WHERE  other = '123'