Pb与存储的声明

时间:2017-07-13 05:15:33

标签: mysql variables store

我想预先执行查询并将结果存储在@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行收到语法错误消息。我无法找到符合我需要的示例,所以请帮助我。

1 个答案:

答案 0 :(得分:0)

如果你使用@ with variable它将在MySQL中作为用户定义的变量工作, 因此,“无需声明用户定义的变量”。请删除第一行DECLARE @query VARCHAR(50);

使用用户变量时,请记住:

对于 SET =:=可以用作赋值运算符。

您还可以在SET以外的语句中为用户变量赋值。在这种情况下,赋值运算符必须是:=而不是=,因为后者在非SET语句中被视为比较运算符=

请参阅这两个链接,了解如何在MySQL中使用Local VariablesUser-Variables