Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Abfrage:Wert um 1 verringern

Sie brauchen keine Anführungszeichen.

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

Um es zu verstehen, ist es wie eine klassische Affektiertheit in allen Sprachen:„Ich möchte my_field gleich my_field sein (der aktuelle Wert) minus 1 .
Wenn Sie Anführungszeichen setzen, bedeutet das:"Ich möchte my_field gleich der Zeichenfolge:

  1. 'my_field-1' (für Ihre erste Anfrage)
  2. 'my_field' - 1 (was zumindest für mich nichts bedeutet:was ist das Ergebnis eines Strings minus einer Ganzzahl?)
  3. '-1' , die in -1 konvertiert wird, wenn Ihr Feld den vorzeichenbehafteten Typ INTEGER hat.

In einigen Fällen (wenn Sie Leerzeichen oder Sonderzeichen in Ihrem Feldnamen haben) können Sie den Feldnamen mit `Backticks` umgeben:

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