Nie potrzebujesz żadnych cytatów.
UPDATE my_table SET my_field = my_field - 1 WHERE `other` = '123'
Aby zrozumieć, to jak klasyczna afektacja w dowolnym języku:„Chcę my_field
jest równy my_field
(bieżąca wartość) minus 1
.
Jeśli umieścisz cudzysłów, oznacza to „Chcę my_field
jest równy łańcuchowi:
'my_field-1'
(dla twojego pierwszego zapytania)'my_field' - 1
(co nic nie znaczy, przynajmniej dla mnie:jaki jest wynik łańcucha minus liczba całkowita?)'-1'
, który zostanie przekonwertowany na -1, jeśli twoje pole ma podpisany typ INTEGER.
W niektórych przypadkach (jeśli masz spacje lub znaki specjalne w nazwie twojego pola), możesz otoczyć nazwę pola 'wsteczami':
UPDATE my_table SET `my_field` = `my_field` - 1 WHERE other = '123'