我正在尋找最好的方法來使用單個查詢一次更新多行。 目前我有:在一個查詢中更新多行非常慢的性能
UPDATE `profiles` SET `name` = CASE `id` WHEN 1 THEN 'John' WHEN 2 THEN 'Jane' END, `gender` = CASE `id` WHEN 1 THEN 'Male' WHEN 2 THEN 'Female' END WHERE `id`=1 OR `id`=2
但是這大約需要4分鐘才能完成(我真正的查詢是在10場中的2000萬行的數據庫),而不是稱取約1秒單獨的更新查詢。
我想解決爲什麼,究竟發生了什麼?我認爲通過在WHERE子句中指定id可以加快速度。
只是一個快速拍攝。我會爲此準備2個不同的查詢。即使您指定了'WHERE'id'= 1或'id'= 2',使用'CASE'方法也可以強制mysql收集所有的ID。如果您爲每個案例準備查詢並直接使用唯一的'id',則您將有最快的方式來執行此操作。通過使用2個語句,您還有更多清晰的查詢,因爲這種「CASE」方法會使查詢變得奇怪......; ) – Marco