与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