我的数据库中有一个表。该表包含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列的表,其中只显示一行。似乎也很奇怪,因为它没有明显的键,并且由于total
和average
列在功能上依赖于其他四个列,因而被严重地规范化了。
目前尚不清楚您的目标是什么,但请注意,由于功能上的依赖性,根本不需要total
和average
列。如果删除它们,则仍然可以查询总数和平均值,如下所示:
SELECT
field1,
field2,
field3,
field4,
(field1 + field2 + field3 + field4) AS total,
(sum / 4.0) AS average
FROM my_tb
编辑以重命名列以匹配原始表;总和->总计,平均->平均。