2010-06-08 75 views
0

我需要更新mysql表中的一列。 如果我按照以下兩個步驟執行操作,是否在磁盤中更新了兩列「col」?MySQL - 更新同一列兩次

更新表SET col = 3 * col,col = col + 2;

,或者它作爲寫入一次:

更新表SET COL = 3 * COL + 2;

感謝

回答

2
update table SET col=3*col+2; 

這樣比較好。 JUST FOR RECORD 其中表是你的表名,而不是關鍵字

3

參見:http://dev.mysql.com/doc/refman/5.0/en/update.html

...
單表更新的任務一般是評估由左到右。對於多表更新,不保證分配按任何特定順序執行。
...

承擔磁盤上的列僅更新一次(行寫的),因爲它來驗證更新所有分配/領域,它不會做寫一個場然後找出存在唯一的密鑰違規。

+0

我得到了一個多表'UPDATE'的問題,其中順序與我編寫查詢的方式無關。關於「一般」意味着什麼的任何線索?就像單個表UPDATE一樣,導致非從左到右更新的情況是什麼? – Xenos 2016-08-21 11:20:32