我正在创建视图,从视图中累积多个列的各个表中选择不同数量的列 说
col1, col2,..............,coln
当我需要所有这些列的总和时,我需要写为
SELECT col1+col2+............+coln FROM myview
我想要技巧,我可以得到总和而不必提及所有的列名。
答案 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