列值的总和动态mySQL

时间:2015-12-29 16:22:21

标签: mysql sql

我正在创建视图,从视图中累积多个列的各个表中选择不同数量的列 说

col1, col2,..............,coln

当我需要所有这些列的总和时,我需要写为

SELECT col1+col2+............+coln FROM myview

我想要技巧,我可以得到总和而不必提及所有的列名。

1 个答案:

答案 0 :(得分:2)

您需要动态SQL才能执行此操作:
http://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html

一个例子:

SELECT concat( 'SELECT ', group_concat( COLUMN_NAME SEPARATOR '+' ),
                ' FROM ', 'myview' )
FROM information_schema.columns
WHERE TABLE_NAME= 'myview'
INTO @s;
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

关于SQLFiddle的工作演示:http://sqlfiddle.com/#!9/4835b/1