我的数据库中有一个表。该表包含6行。两行TOTAL和AVERAGE由其他行的总和自行插入
我一直在使用php amd mysql将数据插入表中,并且工作正常,但现在它要求我仅使用nysql。
我怎么写,使总和表现良好?

我有以下代码来强调更多。

 my_tb
 field1   field2   field3   field4  total  average
 10        12       32          5          sum    sum


我的密码

$total = $abc1+$abc2+$abc3+$abc4;
                    $average= ( $abc1+$abc2+$abc3+$abc4 ) / 4;
                // write new data into database
                $sql = "INSERT INTO my_tb (field1, field2, field3, field4,total,average)
                  VALUES('" . $abc1 . "', '" . $abc2 . "',
                   '" . $abc3 . "',  '" . $abc4 . "', '" . $total . "',  '" . $average . "', '" . $total_score . "'  );";
                $query_new_user_insert = $this->db_connection->query($sql);

                // if user has been added successfully
                if ($query_new_user_insert) {
                    $this->messages[] = "Your data has been created successfully. You can now log in.";
                } else {
                    $this->errors[] = "Sorry, your data upload failed. Please go back and try again.";
                }
            }

            now i am using SQL only

            INSERT INTO `my_tb` (`field1`, `field2`,`field3`,`field4`,`total`,`average`,) VALUES
 ('10', '31',  '31',  '31' , 'field1+field2.....', 'field1+field2...../4');

 but it doesnt work. it inserts the varriables instead of its sum.


有人可以告诉我如何实现这一目标吗?

最佳答案

那不是一个有6行的表,而是一个有6列的表,其中只显示一行。似乎也很奇怪,因为它没有明显的键,并且由于totalaverage列在功能上依赖于其他四个列,因而被严重地规范化了。

目前尚不清楚您的目标是什么,但请注意,由于功能上的依赖性,根本不需要totalaverage列。如果删除它们,则仍然可以查询总数和平均值,如下所示:

SELECT
  field1,
  field2,
  field3,
  field4,
  (field1 + field2 + field3 + field4) AS total,
  (sum / 4.0) AS average
FROM my_tb


编辑以重命名列以匹配原始表;总和->总计,平均->平均。

10-05 21:52