mysql大批量更新数据
程序员文章站
2022-06-15 13:39:19
...
大批量的更新数据如果再使用传统的(update)方法一条一条的更新,效率是很慢的,而且性能差,也很容易造成阻塞。
这里给大家分享两种方法:
1:使用mysql 自有的语句构建批量更新 UPDATE tble
SET price = CASE id
WHEN 16 THEN 7.6
WHEN 19 THEN 8.86
WHEN 20 THEN 9
END
WHERE id IN (16,19,20)
这句sql 的意思是,更新表price字段,如果id=16 则price的值为7.6,如果id=19 则price的值为8.86…等。
where部分不影响代码的执行,但是会提高sql执行的效率。
如果要更新多个字段和多个条件时的情况:
UPDATE tble
SET price = CASE id
WHEN 1 THEN 3
WHEN 2 THEN 4
WHEN 3 THEN 5
END,
name = CASE id
WHEN 1 THEN 'Name 1'
WHEN 2 THEN 'Name 2'
WHEN 3 THEN 'Name 3'
END
WHERE id IN (1,2,3) and pcate in (24,27,26) and ccate in (277,271,207)...[多条件时直接: and 字段 in()]
2.创建临时表,先更新临时表,然后从临时表中update
create tem table tmp(id int(4) primary key,dr varchar(50));
insert into tmp values (0,’gone’), (1,’xx’),…(m,’yy’);
update test_tbl, tmp set test_tbl.dr=tmp.dr where test_tbl.id=tmp.id;
注意:这种方法需要用户有tem 表的create 权限。
如果大家有更好的方法,请留言哈!
问题咨询群:472148690
上一篇: css实现半圆(上下左右半圆)
下一篇: mysql大批量数据插入优化