我正面临着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
Run Code Online (Sandbox Code Playgroud)
我想在一个查询中更新所有这些.
Mar*_*rco 23
试试这个:
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
Run Code Online (Sandbox Code Playgroud)
当然我不知道日期字段是DATE还是DATETIME,所以我留下查询显示你可以做什么,但也许你必须根据数据类型修复日期比较.如果日期字段是DATE(应该如此),您可以编写AND date = '2011-06-22'等等.
注意ELSE条件:必须避免不落入其他情况的记录将被设置为NULL.