UPDATE campaigns.list_name_counter SET counter = CASE WHEN name = 'occupant' THEN '2' WHEN name = 'occupant' THEN '3' WHEN name = 'Resident' THEN '3' WHEN name = 'Resident' THEN '4' WHEN name = 'Resident' THEN '5' END WHERE name IN ('occupant', 'occupant', 'Resident', 'Resident', 'Resident');
此表只有3列。 id,name和counter。当用上面的陈述完成更新时,它只做第一个占用者和第一个居民。它跳过了其余部分。如果有的话,如果每个唯一的名称只能做一次,我宁愿它做每个的最后一个,而不是每个的第一个,但无论如何,如果它更新每个,即使重复名称,或者不是允许?如何让它更新最大的计数器,而不是最小的?我的语法在某个地方搞砸了吗?
答案 0 :(得分:0)
CASE声明没有"通过"就像他们在C中一样;只会使用第一场比赛;它们相当于" if ... else if .... else if else,else if ...."