MySQL批量更新数据总结

方法一 :case...when...then...end
MySQL实现一条sql完成多条数据的更新

UPDATE categories SET
    display_order = 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)

方法二: ON DUPLICATE KEY UPDATE用法(需要利用主键索引或唯一索引冲突,来决定是插入还是更新)
mysql实现upsert

insert into yundou_management.statistic_customer(customer_id,current_period,period_number,client_upload_bill,update_time) values
(1,201604,100,100,1540470512),
(314,201604,100,100,1540470512),
(315,201604,100,100,1540470512),
(316,201611,100,100,1540470512)
ON DUPLICATE KEY UPDATE 
customer_id=values(customer_id),
current_period=values(current_period),
period_number=values(period_number),
client_upload_bill=values(client_upload_bill),
update_time=values(update_time)

猜你喜欢

转载自blog.51cto.com/phpme/2309019