更新具有多个值和多个条件的多个行mysql

我面临着SQL查询的复杂情况.任务是更新多个行,具有多个值和多个条件.以下是我要更新的数据;
字段更新:’sales’,条件字段:’campid’和’date’:

if campid = 259 and date = 22/6/2011 then set sales = $200
else if campid = 259 and date = 21/6/2011 then set sales = $210
else if campid = 260 and date = 22/6/2011 then set sales = $140
else if campid = 260 and date = 21/6/2011 then set sales = $150

我想在一个查询中更新所有这些.

最佳答案
尝试这个:

UPDATE your_table SET sales = 
CASE 
    WHEN campid = 259 AND date = 22/6/2011 THEN 200
    WHEN campid = 259 AND date = 21/6/2011 THEN 210
    WHEN campid = 259 AND date = 22/6/2011 THEN 140
    WHEN campid = 259 AND date = 21/6/2011 THEN 150
    ELSE sales
END

自然我不知道日期字段是否真的是DATE或DATETIME,所以我离开查询显示你可以做什么,但也许你必须根据数据类型修复日期比较.
如果日期字段是DATE(应该),可以写入AND date =’2011-06-22’等等.
注意ELSE条件:有必要避免不在其他情况下的记录将被设置为NULL.

转载注明原文:更新具有多个值和多个条件的多个行mysql - 代码日志