[英]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.