-1
在一個查詢中更新多行,兩者都可以工作。MySQL WHEN與WHERE在性能?
與在
UPDATE category
SET description = CASE id
WHEN 1 THEN 'good'
WHEN 2 THEN 'bad'
WHEN 3 THEN 'ugly'
END
WHERE id IN (1,2,3)
沒有WHERE
UPDATE category
SET description = CASE id
WHEN 1 THEN 'good'
WHEN 2 THEN 'bad'
WHEN 3 THEN 'ugly'
END
但有什麼區別? WHEN
是否使用索引?表格增長非常大時,哪種表現更可取?
重新配置爲SELECT並使用EXPLAIN來檢查是否使用了索引。 – 2015-03-02 10:35:44
在你的「沒有WHERE」時,id = 4時會發生什麼?是否總是定義「id」,並等於三個值之一? – Rubik 2015-03-02 10:36:03
@DanielSchneller,你能幫我把它改寫成SELECT嗎?我不知道該怎麼做。 – 2015-03-02 10:45:30