U heeft geen offertes nodig.
UPDATE my_table SET my_field = my_field - 1 WHERE `other` = '123'
Om te begrijpen, het is als een klassieke aanstellerij in alle talen:"Ik wil my_field
gelijk zijn aan my_field
(de huidige waarde) min 1
.
Als je aanhalingstekens plaatst, betekent dit "Ik wil my_field
gelijk zijn aan de string:
'my_field-1'
(voor je eerste vraag)'my_field' - 1
(wat niets betekent, althans voor mij:wat is het resultaat van een string minus een geheel getal?)'-1'
, die wordt geconverteerd naar -1 als uw veld het ondertekende INTEGER-type heeft.
In sommige gevallen (als u spaties of speciale tekens heeft als uw veldnaam), kunt u de veldnaam omgeven met `backticks`:
UPDATE my_table SET `my_field` = `my_field` - 1 WHERE other = '123'