笔记本电脑功率多大-space是什么键

updatesql
2023年4月6日发(作者:华为分屏功能怎么使用)

sql的批量更新的操作

mysql批量更新共有以下四种办法

1、.replaceinto批量更新

replaceintotest_tbl(id,dr)values(1,’2’),(2,’3’),…(x,’y’);

2、insertinto…onduplicatekeyupdate批量更新

insertintotest_tbl(id,dr)values(1,’2’),(2,’3’),…(x,’y’)onduplicatekeyupdatedr=values(dr);

3.创建临时表,先更新临时表,然后从临时表中update

createtemporarytabletmp(idint(4)primarykey,drvarchar(50));

insertintotmpvalues(0,’gone’),(1,’xx’),…(m,’yy’);

updatetest_tbl,tmpsettest_=etest_=;

注意:这种⽅法需要⽤户有temporary表的create权限。

4、使⽤mysql⾃带的语句构建批量更新

mysql实现批量可以⽤点⼩技巧来实现:

UPDATEyoiurtable

SETdingdan=CASEid

WHEN1THEN3

WHEN2THEN4

WHEN3THEN5

END

WHEREidIN(1,2,3)

这句sql的意思是,更新dingdan字段,如果id=1则dingdan的值为3,如果id=2则dingdan的值为4……

where部分不影响代码的执⾏,但是会提⾼sql执⾏的效率。确保sql语句仅执⾏需要修改的⾏数,这⾥只有3条数据进⾏更新,⽽where⼦

句确保只有3⾏数据执⾏。

如果更新多个值的话,只需要稍加修改:

UPDATEcategories

SETdingdan=CASEid

WHEN1THEN3

WHEN2THEN4

WHEN3THEN5

END,

title=CASEid

WHEN1THEN‘NewTitle1’

WHEN2THEN‘NewTitle2’

WHEN3THEN‘NewTitle3’

END

WHEREidIN(1,2,3)

到这⾥,已经完成⼀条mysql语句更新多条记录了。

更新100000条数据的性能就测试结果来看,测试当时使⽤replaceinto性能较好。

replaceinto和insertintoonduplicatekeyupdate的不同在于:

replaceinto操作本质是对重复的记录先delete后insert,如果更新的字段不全会将缺失的字段置为缺省值,⽤这个要悠着点否则不⼩⼼清

空⼤量数据可不是闹着玩的。

insertinto则是只update重复记录,不会改变其它字段。

更多推荐

updatesql