计算不同的列,并在Mysql查询中将计算出的输出记录在下面的一行中

计算不同的列,并在Mysql查询中将计算出的输出记录在下面的一行中,mysql,Mysql,我有一张桌子:- ----------------+--------------+--------------+--------------------+ | IsFirstChunk | BufferedTime | ElapsedTime | TotalBufferTime| +----+--------------+----------------+--------------+--------------+ | Yes | 9.05669360395

我有一张桌子:-

 ----------------+--------------+--------------+--------------------+
 | IsFirstChunk | BufferedTime       | ElapsedTime | TotalBufferTime|
 +----+--------------+----------------+--------------+--------------+
 | Yes          | 9.056693603959156  | 13.434      | NULL            |
 | NULL         | 8.397168452045355  | 13.915      | NULL            |
 | NULL         | 9.480674058760885  | 14.576      | NULL            |
 | NULL         | 8.25989921902355   | 15.816      | NULL            |
 | NULL         | 9.029792805273495  | 18.573      | NULL            |
 | NULL         | 9.55641146650022   | 26.385      | NULL            |
 | NULL         | 7.567281197192748  | 37.274      | NULL            |
 | NULL         | 9.046965152922192  | 46.142      | NULL            |
 | NULL         | 8.135399698570493  | 56.825      | NULL            |
我想计算BufferTime和ElapsedTime列,并将输出插入TotalBufferTime列,但我想将输出记录在TotalBufferTime列下面的一行,而不是相邻的一行

我想这样做:-

update RequestInfo SET `TotalBufferTime` = BufferedTime + ElapsedTime;
唯一的问题是我想记录TotalBufferTime下一行的输出

+--------------+--------------+--------------+--------------------+
| IsFirstChunk | BufferedTime       | ElapsedTime | TotalBufferTime|
+----+--------------+----------------+--------------+--------------+
| Yes          | 9.056693603959156  | 13.434      | 0              |
| NULL         | 8.397168452045355  | 13.915      | 22.4906936     |
| NULL         | 9.480674058760885  | 14.576      | 22.31216845    |   
试试这个:

update RequestInfo join (
    select curr.id, (
        select (prior.BufferedTime + prior.ElapsedTime) AS value  
          from RequestInfo prior
         where prior.id < curr.id
      order by prior.id desc
       limit 1) value
      from RequestInfo curr
  ) g on g.id = RequestInfo.id
set RequestInfo.TotalBufferTime = g.value;

看见考虑忽略与问题解决错误代码相关的列:1064。您的SQL语法有错误;在第行“$getAllFromTable=getAllFromTable”附近,查看与MySQL服务器版本对应的手册,以了解要使用的正确语法1@sonadas,现在检查一下。