Mybatis MySQL批量更新

 UPDATE experiment_log 
 SET look_time = CASE log_id
	WHEN 1 THEN ((SELECT b.look_time FROM  (SELECT a.look_time FROM experiment_log  AS a WHERE a.log_id = 1) AS b )+5000)
	WHEN 2 THEN ((SELECT b.look_time FROM  (SELECT a.look_time FROM experiment_log  AS a WHERE a.log_id = 2) AS b )+1000)
	END
WHERE log_id IN (1,2)

这里主要用了 case when then关键字。

另外需要注意一点:Mysql不允许在同一张同时进行查询和更新操作的,所以我们需要用临时表来处理绕过这个限制

猜你喜欢

转载自my.oschina.net/u/3361262/blog/1812364