Mysql
 sql >> Database >  >> RDS >> Mysql

Query MySQL:diminuisci il valore di 1

Non hai bisogno di citazioni.

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

Per capire, è come una classica affettazione in qualsiasi lingua:"Voglio my_field essendo uguale a my_field (il valore corrente) meno 1 .
Se metti le virgolette, significa "Voglio my_field essendo uguale alla stringa:

  1. 'my_field-1' (per la tua prima domanda)
  2. 'my_field' - 1 (che non significa nulla, almeno per me:qual è il risultato di una stringa meno un intero?)
  3. '-1' , che verrà convertito in -1 se il tuo campo ha il tipo con segno INTEGER.

In alcuni casi (se hai spazi o caratteri speciali se il nome del tuo campo), puoi racchiudere il nome del campo con `backtick`:

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