sql:单表多个条件sql批量更新,但是更新的值是不一样的

update 表名 set 列名1=case
when 列名2='a' and 列名3=2 then 'tt'
when 列名2='b' and 列名3=2 then 'tt'
else 列名1
END

我的写法是这种的 但是数据量太大 这个表数据几十万条 这样他又会把不需要更新的也更新一遍 这样就等于一次性更新几十万条,速度就会很慢
UPDATE 表名
SET 列名1 = CASE 列名2
WHEN 'a' THEN 'tt'
WHEN 'b' THEN 'tt'
END
WHERE 列名2 IN ('a','b')
这种好像又只能有一个条件

1、第一句是修改所有的表
2、第二句加了条件,没错,为什么你说会只有一个条件,你可以加多个的
3、把你的需求再描述清楚些,最好举个例子,随便编造几个数据

where 条件和正常的写法一样 可以加其他条件的

如果想实现前一种更新,可以考虑把sql语句改为:

 update 表名 set 列名1=case  when 列名2='a'  then 'tt' else 'tt' END
 where 列名2 in ('a','b')  and 列名3=2

这样实现的更新行与前一种情况相同

foreach 标签呢?

我的是批量插入,都是批量的 或许有帮助
http://blog.csdn.net/orangetop/article/details/76539253