我有這個疑問,它的工作原理...更新/遞增多個MySQL列在一個查詢
UPDATE `contacts`
SET `calls_to`=`calls_to`+1
WHERE `contact_no` = '0412345678';
我也想要做的是一個價值增加了成本的項目。從我的理解,順便做這將是...
UPDATE `contacts`
SET `calls_to` = `calls_to`+1,
`cost_to` = `cost_to`+0.25
WHERE `contact_no`='0412345678';
很明顯,因爲我在這裏發帖,它不工作,因爲我期望的那樣。
--UPDATE--
按照要求,表結構..
id int(255) auto_increment
contact_owner varchar(255)
contact_no varchar(11)
contact_name varchar(255)
calls_to int(255)
txts_to int(255)
time_talked_to int(255)
cost_to decimal(65,2)
發生了什麼事?查詢看起來不錯。 – mdma 2010-07-29 04:49:00
你能發佈你的數據庫模式嗎?你也可以發佈'SELECT * FROM contacts WHERE contact_no ='0412345678''的結果嗎?順便說一下,我認爲最好總是添加一個「LIMIT 1」來更新你不希望影響多於一行的更新:) – Hamy 2010-07-29 04:51:12
@mdma:我的猜測是'cost_to'是一個INT數據類型,所以在UPDATE中添加的十進制被截斷。我看不出還有什麼可能。 ...而你的回答是*所以*不存在。 – 2010-07-29 04:51:13