sql >> Databasteknik >  >> RDS >> Mysql

Mysql-fråga:minska värdet med 1

Du behöver inga offerter.

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

För att förstå är det som en klassisk tillgivenhet på alla språk:"Jag vill ha my_field är lika med my_field (det aktuella värdet) minus 1 .
Om du sätter citattecken betyder det "Jag vill ha my_field är lika med strängen:

  1. 'my_field-1' (för din första fråga)
  2. 'my_field' - 1 (vilket inte betyder något, åtminstone för mig:vad blir resultatet av en sträng minus ett heltal?)
  3. '-1' , som kommer att konverteras till -1 om ditt fält har typen INTEGER-signerad.

I vissa fall (om du har mellanslag eller specialtecken om ditt fältnamn) kan du omge fältnamnet med "backticks":

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


  1. Komma igång med ProxySQL - MySQL &MariaDB Load Balancing Tutorial

  2. 5 sätt att hitta rader som innehåller versaler i SQL Server

  3. Hur man hittar genomsnittet av skillnader i de senaste N-läsningarna av en kolumn PHP MySQL

  4. Hur väljer jag något i MYSQL utan att välja det två gånger om det står i raden