我有一个 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.老实说,我几乎不理解它,我很惊讶它甚至是可能的,但是在修改了一些名称之后它完全满足了我的需要,但我在“ View ”中需要它。
我如何将它添加到我的数据库中的 View 中?
非常感谢
最佳答案
我想这个问题已经问了一段时间了,但我知道这是可能的。
如下所示,对您准备好的查询的最后一部分稍作修改将帮助您实现目标:
只需修改PREPARE stmt
SET @qrys = CONCAT('CREATE OR REPLACE VIEW "put_your_view_name_without_quote" AS ',@qry);
PREPARE stmt FROM @qrys;
EXECUTE stmt;
关于mysql 从工作 "prepare"语句创建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16726456/