Saya mahu mengurangkan nilai yang terkandung dalam medan (integer atau lungsur) sebanyak 1. Saya mencuba 3 pertanyaan ini dan tiada satu pun daripada mereka yang berfungsi seperti yang diharapkan:
UPDATE `my_table` SET `my_field` = 'my_field-1' WHERE `other` = '123' UPDATE `my_table` SET `my_field` = 'my_field' -1 WHERE `other` = '123' UPDATE `my_table` SET `my_field` = '-1' WHERE `other` = '123'
Saya mencari di sini dan di Google tetapi semua penyelesaian yang saya temui adalah serupa. Sebarang idea mengapa ini tidak berfungsi di pihak saya?
Cuba alih keluar petikan tunggal daripada nama lajur jika tidak, ia akan dianggap sebagai rentetan "my_field-1" atau gunakan tanda belakang di sekeliling nama lajur
atau
Anda tidak memerlukan sebarang sebut harga.
Untuk memahami, ini seperti emosi klasik dalam mana-mana bahasa: “Saya mahu
my_field
等于my_field
(nilai semasa) tolak1
” >.Jika dipetik, ia bermaksud "Saya mahu
my_field
my_field sama dengan rentetan:'my_field-1'
'my_field-1' (untuk pertanyaan pertama anda)'my_field' - 1
'my_field' - 1 (Ini tidak masuk akal, sekurang-kurangnya bagi saya: apakah hasil penolakan integer daripada rentetan?)'-1'
'-1', jika medan anda mempunyai jenis simbolik INTEGER, nilai akan ditukar kepada -1.Dalam sesetengah kes (jika nama medan anda mempunyai ruang atau aksara khas di dalamnya) anda boleh mengelilingi nama medan dengan "backtick":
Kaedahnya sangat penting dan gaji hakiki ***gasa*** diberi