與MySQL我使用這個查詢:MYSQL更新集在同一列,但與多個WHERE子句
UPDATE CustomerDetails_COPY
SET Category_ID = 10
WHERE Category_ID = 2
那很好,但我想廣告15+更SET/WHERE
之如:
UPDATE CustomerDetails_COPY
SET Category_ID = 9 WHERE Category_ID = 3
SET Category_ID = 12 WHERE Category_ID = 4
SET Category_ID = 11 WHERE Category_ID = 5
.....
我該怎麼補充?
編輯:
按獵人建議:
UPDATE CustomerDetails_COPY
SET Category_ID = CASE Category_ID
WHEN 2 THEN 10
WHEN 3 THEN 9
WHEN 4 THEN 12
WHEN 5 THEN 11
END
WHERE Category_ID IN (2,3,4,5)
這個偉大的工程!由於
刪除我的評論作爲嘗試這個和工作,很好:)作爲一個說明,你可以添加「ELSE Category_ID」之前「結束」,如果你不想包括在哪裏 – 2012-02-20 21:27:12
謝謝。好點;它可以節省兩次進入列的時間。 – 2012-02-20 21:29:28
使用'WHERE'子句,您幾乎可以確保能夠使用Category_ID上的索引,也可以使用[safe-updates](http://dev.mysql.com/doc/refman/5.0/zh/) mysql-command-options.html#option_mysql_safe-updates)啓用後,您必須輸入帶'UPDATE'的WHERE子句,所以'ELSE'子句可能不是最佳選擇。堅持'WHERE'。 – 2012-02-20 21:39:47