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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章