Du behøver ingen tilbud.
UPDATE my_table SET my_field = my_field - 1 WHERE `other` = '123'
For at forstå, er det som en klassisk affekt på alle sprog:"Jeg vil have my_field
er lig med my_field
(den aktuelle værdi) minus 1
.
Hvis du sætter anførselstegn, betyder det "Jeg vil have my_field
er lig med strengen:
'my_field-1'
(til din første forespørgsel)'my_field' - 1
(hvilket ikke betyder noget, i det mindste for mig:hvad er resultatet af en streng minus et heltal?)'-1'
, som vil blive konverteret til -1, hvis dit felt har INTEGER-signeret typen.
I nogle tilfælde (hvis du har mellemrum eller specialtegn, hvis dit feltnavn), kan du omgive feltnavnet med `backticks`:
UPDATE my_table SET `my_field` = `my_field` - 1 WHERE other = '123'