gpt4 book ai didi

MySQL 从 2 列更新两行

转载 作者:太空宇宙 更新时间:2023-11-03 11:06:32 25 4
gpt4 key购买 nike

有没有办法将这两个语句简化为一个?

UPDATE items
SET D1 = 'AAA'
WHERE D1 = 'BBB'

UPDATE items
SET D2 = 'AAA'
WHERE D2 = 'BBB'

我想仅当 D1 为 BBB 时将 D1 设置为 AAA,仅当 D2 为 BBB 时才将 D2 设置为 AAA。

最佳答案

这是在一条语句中执行此操作的最有效方法:

UPDATE items
SET D1 = IF(D1 = 'BBB', 'AAA', D1),
D2 = IF(D2 = 'BBB', 'AAA', D2)
WHERE D1 = 'BBB' OR D2 = 'BBB';

为获得最佳性能,请确保在 D1D2 上有单独的索引。在这种情况下,查询规划器可以进行索引合并。不要只使用多列索引,否则查询规划器将不得不退回到表扫描。

关于MySQL 从 2 列更新两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11551287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com