2

我有一个 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;

这个问题here。老实说,我几乎不理解它,我很惊讶它甚至是可能的,但是在修改了一些名称之后它完全符合我的需要,但我需要它在“视图”中。

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

非常感谢

4

1 回答 1

2

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

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

只需要修改之前PREPARE stmt

SET @qrys = CONCAT('CREATE OR REPLACE VIEW "put_your_view_name_without_quote" AS ',@qry);
PREPARE stmt FROM @qrys;
EXECUTE stmt;
于 2019-07-15T07:34:47.910 回答