对于MySQL数据库表中的数据,有时需要把多列的数据累加到一列中,这可以使用函数实现。
UPDATE 表名 SET 目标列 = 列1 + 列2 + 列3;
其中,UPDATE
表示更新表操作,表名
表示需要更新的表名,目标列
表示需要累加数据的列名,列1
、列2
、列3
分别表示需要累加的列。
例如,有一个学生表student
,其中包含学生的姓名、语文、数学、英语成绩。
CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `score_chinese` double(5,2) NOT NULL DEFAULT '0.00' COMMENT '语文成绩', `score_math` double(5,2) NOT NULL DEFAULT '0.00' COMMENT '数学成绩', `score_english` double(5,2) NOT NULL DEFAULT '0.00' COMMENT '英语成绩', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
现在需要把每个学生的语文、数学、英语成绩累加到总成绩列score_total
中。
UPDATE student SET score_total = score_chinese + score_math + score_english;
执行以上语句后,student
表的数据将变为:
id | name | score_chinese | score_math | score_english | score_total ----|------|---------------|------------|---------------|------------- 1 | 张三 | 85.5| 90 | 80.5| 256 2 | 李四 | 90| 92.5 | 85| 267.5
可以看到,每个学生的总成绩都累加到了score_total
列中。