Você não precisa de citações.
UPDATE my_table SET my_field = my_field - 1 WHERE `other` = '123'
Para entender, é como uma afetação clássica em qualquer idioma:"Eu quero
my_field
sendo igual a my_field
(o valor atual) menos 1
.Se você colocar aspas, significa "Eu quero
my_field
sendo igual à string:'my_field-1'
(para sua primeira consulta)'my_field' - 1
(o que não significa nada, pelo menos para mim:qual o resultado de uma string menos um inteiro?)'-1'
, que será convertido em -1 se seu campo tiver o tipo com sinal INTEGER.
Em alguns casos (se você tiver espaços ou caracteres especiais no nome do seu campo), você pode cercar o nome do campo com `backticks`:
UPDATE my_table SET `my_field` = `my_field` - 1 WHERE other = '123'