我想预先执行查询并将结果存储在@query:
中BEGIN
DECLARE @query VARCHAR(50);
SET @table = 'top20-img-link';
SET @query = CONCAT('SELECT model FROM ', @table);
PREPARE stmt FROM @query;
EXECUTE stmt;
DROP TABLE IF EXISTS `TABLE1`;
CREATE TABLE `TABLE1`
AS (
SELECT *,
CASE
WHEN (family1='top20-img-link') THEN @query
WHEN (family2='top20-img-link') THEN @query2
WHEN (family2='top20-img-link') THEN @query3
END prod1
ETC。
但我在第3行收到语法错误消息。我无法找到符合我需要的示例,所以请帮助我。
答案 0 :(得分:0)
如果你使用@ with variable它将在MySQL中作为用户定义的变量工作,
因此,“无需声明用户定义的变量”。请删除第一行DECLARE @query VARCHAR(50);
。
使用用户变量时,请记住:
对于 SET ,=
或:=
可以用作赋值运算符。
您还可以在SET以外的语句中为用户变量赋值。在这种情况下,赋值运算符必须是:=
而不是=
,因为后者在非SET语句中被视为比较运算符=
请参阅这两个链接,了解如何在MySQL中使用Local Variables和User-Variables。