-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