【问题标题】:Get sum of specific columns in row and update in field获取行中特定列的总和并在字段中更新
【发布时间】:2020-04-15 21:54:38
【问题描述】:

有这样的桌子

Sr.No   Name    Subject1    Subject2    Subject3    Total Marks
1       A         25         65           30           ?    
2       B         52         54           65           ?
3       C        60          54           45           ?

我想对所有三个主题和喜欢的总和进行总结

Subject1+Subject2+Subject3= ?

并将其单独存储在(总分)字段中

如何处理 PHP 代码。

【问题讨论】:

  • 你有没有尝试过?你怎么做插入?为什么要存储总和?您可以只使用 SQL sum()
  • @user3783243 SUM() 不是 SQL 中的组函数吗?因此它将返回所有选定或分组行的列的总和!这不是这里应该做的。
  • 也许你可以用这个“列”创建一个新视图!
  • 请注意,数据库表不是电子表格。修复您的架构。
  • @csabinho 是的,你是对的。数学可以用于查询select (Subject1 + Subject2) as sum

标签: php mysql sql


【解决方案1】:

在 MySQL 中,最好的方法是添加计算列:

alter table likethis add column totalmarks int
   generated always as (Subject1 + Subject2 + Subject3);

那么TotalMarks 总是最新的。

如果该列一直存在,可以使用update

update likethis
    set totalmarks = Subject1 + Subject2 + Subject3;

我不推荐这种方式。数据变化时不会重新计算值。

我不知道您所说的“如何使用 PHP 代码”是什么意思。你的问题是关于修改表,所以你必须使用数据库。您可以从 PHP 调用命令,但这只是实际工作的接口。

【讨论】:

  • 嗯,我从未见过generated always。我见过stackoverflow.com/questions/15384429/…stackoverflow.com/questions/53250756/…,因此使用了触发器。查看手册,该功能似乎已经存在了一段时间(5.5+),您是否知道为什么其他答案都没有推荐这种方法?
  • 只需用旧表和(Subject1+Subject2+Subject3) AS totalmarks创建一个视图。
  • @user3783243 。 . .您必须询问回答的人为什么他们没有使用数据库中的适当功能。
  • 想通了。该功能实际上是新功能,在 5.7 中出现,而不是 5.5。
猜你喜欢
  • 2021-05-06
  • 2013-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多