【问题标题】:MySQL: calculate and update a row with other rows value?MySQL:用其他行值计算和更新一行?
【发布时间】: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

【问题讨论】:

    标签: mysql sql database phpmyadmin mariadb


    【解决方案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;
    

    使用子查询也可以实现类似的逻辑,但是代码有点混乱。

    【讨论】:

      猜你喜欢
      • 2013-01-17
      • 2022-08-18
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多