mysql从工作“prepare”语句创建视图

时间:2013-05-24 01:36:48

标签: mysql sql

我有一个SQL查询

SELECT CONCAT(
  'SELECT `table`.id', GROUP_CONCAT(CONCAT('
     ,    `t_', REPLACE(name, '`', '``'), '`.value
         AS `', REPLACE(name, '`', '``'), '`'
   ) SEPARATOR ''),
 ' FROM `table` ', GROUP_CONCAT(CONCAT('
     LEFT JOIN `table`   AS `t_', REPLACE(name, '`', '``'), '`
            ON `table`.id = `t_', REPLACE(name, '`', '``'), '`.id
           AND `t_', REPLACE(name, '`', '``'), '`.name = ', QUOTE(name)
   ) SEPARATOR ''),
 ' GROUP BY `table`.id'
) INTO @qry FROM (SELECT DISTINCT name FROM `table`) t;

PREPARE stmt FROM @qry;
EXECUTE stmt;

来自this question here.老实说,我几乎不理解它,我很惊讶它甚至可能,但在修改了一些名字之后它完全符合我的需要,但我需要它在“视图”中。

如何将其添加到我的数据库中的视图?

非常感谢

1 个答案:

答案 0 :(得分:0)

我想这个问题已经有一段时间了,但是我知道这是可能的。

对准备好的查询的最后部分进行一些修改,如下所示,这将帮助您实现目标:

只需在PREPARE stmt

之前进行修改
SET @qrys = CONCAT('CREATE OR REPLACE VIEW "put_your_view_name_without_quote" AS ',@qry);
PREPARE stmt FROM @qrys;
EXECUTE stmt;