不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2020-12-12 23:14  分类:MySQL/NoSQL  编辑

使用自带的语句构建批量更新

mysql 实现批量 可以用点小技巧来实现:

UPDATE tableName
    SET orderId = CASE id 
        WHEN 1 THEN 3 
        WHEN 2 THEN 4 
        WHEN 3 THEN 5 
    END
WHERE id IN (1,2,3)

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

where部分不影响代码的执行,但是会提高sql执行的效率。确保sql语句仅执行需要修改的行数,这里只有3条数据进行更新,而where子句确保只有3行数据执行。

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

UPDATE categories 
    SET orderId = CASE id 
        WHEN 1 THEN 3 
        WHEN 2 THEN 4 
        WHEN 3 THEN 5 
    END, 
    title = CASE id 
        WHEN 1 THEN 'New Title 1'
        WHEN 2 THEN 'New Title 2'
        WHEN 3 THEN 'New Title 3'
    END
WHERE id IN (1,2,3)

 

 

参考:

大批量更新数据mysql批量更新的4种方法

MySQL批量插入与更新