Нямате нужда от никакви цитати.
UPDATE my_table SET my_field = my_field - 1 WHERE `other` = '123'
За да разберете, това е като класическа аффектация на всякакви езици:„Искам my_field
е равно на my_field
(текущата стойност) минус 1
.
Ако поставите кавички, това означава „Искам my_field
е равно на низа:
'my_field-1'
(за първата ви заявка)'my_field' - 1
(което не означава нищо, поне за мен:какъв е резултатът от низ минус цяло число?)'-1'
, което ще бъде преобразувано в -1, ако полето ви има подписан тип INTEGER.
В някои случаи (ако имате интервали или специални знаци, ако името на полето ви), можете да заобиколите името на полето с `backticks`:
UPDATE my_table SET `my_field` = `my_field` - 1 WHERE other = '123'