Bạn không cần bất kỳ dấu ngoặc kép nào.
UPDATE my_table SET my_field = my_field - 1 WHERE `other` = '123'
Để hiểu, nó giống như một ảnh hưởng cổ điển trong bất kỳ ngôn ngữ nào:"Tôi muốn my_field
bằng với my_field
(giá trị hiện tại) trừ đi 1
.
Nếu bạn đặt dấu ngoặc kép, nó có nghĩa là "Tôi muốn my_field
bằng với chuỗi:
-
'my_field-1'
(cho truy vấn đầu tiên của bạn) -
'my_field' - 1
(điều đó không có nghĩa gì, ít nhất là đối với tôi:kết quả của một chuỗi trừ đi một số nguyên là bao nhiêu?) -
'-1'
, sẽ được chuyển đổi thành -1 nếu trường của bạn có kiểu ký tên INTEGER.
Trong một số trường hợp (nếu bạn có dấu cách hoặc ký tự đặc biệt nếu tên trường của bạn), bạn có thể bao quanh tên trường bằng `dấu gạch ngược`:
UPDATE my_table SET `my_field` = `my_field` - 1 WHERE other = '123'