淘先锋技术网

首页 1 2 3 4 5 6 7

对于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列中。