No necesitas comillas.
UPDATE my_table SET my_field = my_field - 1 WHERE `other` = '123'
Para entender, es como una afectación clásica en cualquier idioma:"Quiero my_field
siendo igual a my_field
(el valor actual) menos 1
.
Si pone comillas, significa "Quiero my_field
siendo igual a la cadena:
'my_field-1'
(para su primera consulta)'my_field' - 1
(lo que no significa nada, al menos para mí:¿cuál es el resultado de una cadena menos un número entero?)'-1'
, que se convertirá a -1 si su campo tiene el tipo INTEGER firmado.
En algunos casos (si tiene espacios o caracteres especiales en el nombre de su campo), puede rodear el nombre del campo con `comillas invertidas`:
UPDATE my_table SET `my_field` = `my_field` - 1 WHERE other = '123'