在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语句时调用视图,因为我觉得它很昂贵
答案 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