将查询结果存储到变量中以便稍后使用

时间:2014-11-17 18:29:06

标签: mysql

就像标题所说,我试图将查询结果存储在一个变量中,以便我可以在另一个加入它们的查询中使用它。我一直在尝试使用INTO santex,因为它在谷歌上描述它。这就是我要输入的内容:

mysql> select Name, Type, Region from table1 union select Name, Type, Region from Table2 into @temp1;

但是,有了这个,我收到了这个错误:

ERROR 1222 (21000): The used SELECT statements have a different number of columns

由于Select语句具有相同的列数,因此没有意义。所以我想也许是我的变量,所以我删除@并再次尝试,但我得到了这个错误:

ERROR 1327 (42000): Undeclared variable: temp

所以现在我迷路了,我做错了什么?我遵循谷歌上几个维基上描述的语法,但没有运气。

2 个答案:

答案 0 :(得分:0)

您需要在SELECT语句中设置变量,而不是在之后。 请参阅:http://dev.mysql.com/doc/refman/5.0/en/example-user-variables.html

答案 1 :(得分:0)

您可以像这样创建一个临时表。

mysql> CREATE TEMPORARY TABLE SalesSummary (
-> product_name VARCHAR(50) NOT NULL
-> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
-> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
-> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);

他们在这里有很棒的教程:http://www.tutorialspoint.com/mysql/mysql-temporary-tables.htm