MySQL实现两行相加的方法(mysql 两行相加)

MySQL实现两行相加的方法

在MySQL数据库中,有时需要对两行数据进行相加计算,而不是对某一列数据进行计算。那么如何实现两行相加呢?下面我们介绍两种方法。

方法一:使用UNION ALL关键字

UNION ALL关键字可以将两个或多个SELECT语句的结果集合并为一个结果集。使用该关键字可以达到将两行数据相加的效果。

示例:

假设有以下数据表:

CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`value` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

如果需要将id为1和2的两行数据相加,可以使用以下语句:

SELECT SUM(value) as result FROM (
SELECT value FROM test WHERE id = 1
UNION ALL
SELECT value FROM test WHERE id = 2
) t;

上述语句中,先使用UNION ALL关键字将id为1和2的两行数据合并为一个结果集,然后在外层使用SUM函数计算结果。

方法二:使用CASE函数

CASE函数在MySQL中可以完成条件判断。结合SUM函数,可以实现对两行数据的加和操作。

示例:

仍然使用上述数据表,如果需要将id为1和2的两行数据相加,可以使用以下语句:

SELECT SUM(
CASE id
WHEN 1 THEN value
WHEN 2 THEN value
END
) as result FROM test;

上述语句中,第一行SELECT语句中的CASE函数根据id的值对value进行条件判断,将id为1和2的两行数据相加得到结果。

总结

以上就是MySQL实现两行相加的两种常用方法。方法一使用UNION ALL关键字合并数据行,方法二使用CASE函数进行条件判断。根据实际需求选择不同的方法,可以达到较好的效果。


数据运维技术 » MySQL实现两行相加的方法(mysql 两行相加)