我正在处理mysql中的存储过程。
我发现对于某些proc我必须编写sql查询的同一部分,但是我需要一种在所有proc中重用相同查询代码(不是结果)的方法,我该怎么做?
这是我的S.proc:
BEGIN
SELECT date, sum(size_kg) as `total_size`, sum(net_size) as `total_net_size`,sum(bags) as `total_bags` FROM `stock` WHERE date=CURDATE() GROUP By CURDATE();
END
where子句之前的代码在所有proc中都是相同的,那么我如何重用该查询部分代码(不是结果)?
答案 0 :(得分:0)
由于此特定过程似乎只是一个简单明了的SELECT语句,因此使其在其他多个地方可重复使用的最简单的方法就是将其变成View。
如果您说的是WHERE子句可能会有所不同,具体取决于使用代码的位置,则只需从View中省略WHERE子句,然后让每个调用者设置自己的WHERE子句以限制视图返回的数据不管它是什么。