在mysql/ target=_blank class=infotextkey>mysql数据库中,update 查询比较棘手,因为不能简单地写进去多个值。
不同情况下,用不同的方法解决。如果确信将要update的记录是存在的,那么可以使个花招,用insert ... on duplicate key update代替(没想通的在下面留言)。
但是,如果并非100%确定这条记录存在,那么最好建一个临时表,插进去全部试图更新的值,然后执行一条多表update查询。
如果跑的是mariadb,或是percona server,也可以试下在handlersocket接口上做update。
可以大幅消除由于执行多条查询带来的开销。(www.jb200.com 脚本学堂)
甚至,对于每个update执行一条查询的情况一样有效。
跟往常一样,不同方法的性能差异在于数据和要做的事情。
一定要在数据、服务器和应用程序上进行测试。
以上就是mysql无需循环update多条记录的小技巧,希望对大家有所帮助。