MySQL:用其他行值计算和更新一行?
Posted
技术标签:
【中文标题】MySQL:用其他行值计算和更新一行?【英文标题】:MySQL: calculate and update a row with other rows value? 【发布时间】:2017-06-14 02:29:42 【问题描述】:表1
ID X Y
1 0.5 0.5
2 ? ?
3 5 5
大家好,
基本上我有一张和上面一样的桌子。我试图用除以其他列的值的结果来更新 ID = 2 的 X 和 Y 的值。
我尝试运行此查询但没有成功,
"UPDATE Table1 SET X = X IN (WHERE ID = 1) / Y IN (WHERE ID = 3) WHERE ID = 2"
我想要的结果是
ID X Y
1 0.5 0.6
2 (0.5/6) (0.6/5)
3 5 6
【问题讨论】:
【参考方案1】:在许多数据库中,您可以使用JOIN
。在 mysql 语法中,这看起来像:
UPDATE Table1 t1 JOIN
Table1 t1_1
ON t1_1.ID = 1 JOIN
Table1 t1_3
ON t1_3.ID = 3
SET t1.X = t1_1.X / t1_3.X,
t1.Y = t1_3.X / t1_3.Y
WHERE t1.ID = 2;
使用子查询也可以实现类似的逻辑,但是代码有点混乱。
【讨论】:
以上是关于MySQL:用其他行值计算和更新一行?的主要内容,如果未能解决你的问题,请参考以下文章