9
我是MySQL的新手。在單個查詢中更新具有不同值的多行 - MySQL
我使用這個更新與不同的價值觀多行,在一個查詢:
UPDATE categories
SET 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)
我使用「WHERE」來提高性能(沒有它在表中的每一行會測試)。
但是,如果我有這樣的塞納里奧(當我不想爲ID 2更新的標題和3):
UPDATE categories
SET 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'
END
WHERE id IN (1,2,3)
上面的代碼將改變標題ID 2和3成「NULL」...
什麼是正確的方式來作出查詢,但跳過更新標題爲id 2和3,仍然保持性能「WHERE ID IN」給?
也許這樣
UPDATE categories
SET 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 THEN
WHEN THEN
END
WHERE id IN (1,2,3)