MySQL存储过程 - 将变量分配给View中的结果行

时间:2017-01-03 19:38:53

标签: mysql stored-procedures

在MySQL中开发存储过程如何在自定义视图中创建包含行结果集的局部变量?

SET temptable = 'view'; #non scalar value (rows)

#Perform multiple queries on view now

SET @a = (SELECT (...) FROM temptable WHERE ....);

SET @b = (SELECT (...) FROM temptable WHERE ....);

SET @c = (SELECT (...) FROM temptable WHERE ....);

我不想在每次执行select语句时调用视图,因为我觉得它很昂贵

2 个答案:

答案 0 :(得分:2)

你不需要这一切。您可以包含所有不同的条件,因为OR条件(OR)使用UNION ALL查询,如

create temporary table tbltemp as
SELECT (...) FROM temptable WHERE cond1 or cond2 OR ... OR condn

根据你的评论,取决于;如果你试图获取标量值,那么是否,否则因为多个记录不能存储在标量变量中。您必须使用temp table或联结表。

您可能需要修改帖子,并提供有关您要实现的目标的更多信息。

答案 1 :(得分:0)

我无法对@ Rahul的答案发表评论(没有50个代表),但是检查一下,它支持他所说的话:http://dev.mysql.com/doc/refman/5.7/en/view-algorithms.html