繁体   English   中英

如何根据同一张表的另一列的值更新特定的表列?

[英]How do you update a specific table column based on the value of another column of the same table?

假设我有 4 列:A、B、C、D 和一个附加列:连续索引。

假设我想保存一个值“50”,但取决于行 mysql 的“索引”值将在 A、B、C、D 中保存 50。假设该特定行的索引 = 1,则 50 转到“A”栏。

是否有一个 mysql 查询可以在一个 go 中完成这一切? 还是我必须先读取索引值,然后使用四个不同的更新查询创建一个 switch 语句来完成这个?

这是一种方法:

UPDATE mytable
SET 
    A = CASE WHEN index = 1 THEN 50 ELSE A END,
    B = CASE WHEN index = 2 THEN 50 ELSE B END,
    C = CASE WHEN index = 3 THEN 50 ELSE C END,
    D = CASE WHEN index = 4 THEN 50 ELSE D END
WHERE ...

该查询根据index的值对每一列进行条件值赋值。 当不需要更新列时,只需重新分配其原始值,从而将操作变为无操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM