欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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