为什么不是';这个大容量mysql案例语句行得通吗?

为什么不是';这个大容量mysql案例语句行得通吗?,mysql,case,Mysql,Case,此表只有3列。id、名称和计数器。当它使用上面的语句完成更新时,它只对第一个居住者和第一个居民进行更新。它跳过了其余的部分。如果有的话,如果它只能对每个唯一的名称执行一次,我更希望它执行每个名称的最后一次,而不是第一次,但无论如何,它是否应该在每个名称上更新,即使名称重复,还是不允许?我怎样才能让它在最大的计数器上更新,而不是在最小的计数器上更新?我的语法有什么地方出错了吗?CASE语句不像在C中那样“失败”;只使用第一个匹配项;如果您希望在最后一个true时更新它,则它们相当于“if…else

此表只有3列。id、名称和计数器。当它使用上面的语句完成更新时,它只对第一个居住者和第一个居民进行更新。它跳过了其余的部分。如果有的话,如果它只能对每个唯一的名称执行一次,我更希望它执行每个名称的最后一次,而不是第一次,但无论如何,它是否应该在每个名称上更新,即使名称重复,还是不允许?我怎样才能让它在最大的计数器上更新,而不是在最小的计数器上更新?我的语法有什么地方出错了吗?

CASE语句不像在C中那样“失败”;只使用第一个匹配项;如果您希望在最后一个true
时更新它,则它们相当于“if…else if…else if…else if…”

;为什么会有更早的呢?什么时候应该使用3而不是5?此外,“批量案例”一词也没有多大意义。在
条件下使用重复的
有什么想法?很难解释,但这只是我的循环如何工作并收集csv文件的所有行。当所有的名字都是唯一的时候,我就能做到这一点。实际上,即使有重复项,如果名称还没有保存在表中,我也可以让它工作,但一旦名称被保存,重复项就会把它弄糟,并且不能正常工作。我需要提取当前计数器,然后在所有循环完成后用正确的数字保存计数器编号。所以,如果占用者存在,并且它的1和2更多在下一个csv中,那么它应该是3,如果驻留存在计数器的2和3更多在下一个列表中,那么它应该以5结束。也许我需要切换到常规批量更新语句,而不是执行case语句。批量是指我收集所有插入或更新,然后在最后执行。
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');