आपको किसी उद्धरण की आवश्यकता नहीं है।
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 हस्ताक्षरित प्रकार है।
कुछ मामलों में (यदि आपके पास रिक्त स्थान या विशेष वर्ण हैं यदि आपका फ़ील्ड नाम है), तो आप फ़ील्ड नाम को `बैकटिक्स` से घेर सकते हैं:
UPDATE my_table SET `my_field` = `my_field` - 1 WHERE other = '123'