如何在其他存储过程mysql中重用相同的查询代码(而不是结果)?

qncylg1j  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(376)

我正在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子句之前的代码在所有过程中都是相同的,那么如何重用查询部分代码(而不是result)?

7gcisfzg

7gcisfzg1#

因为这个特定的过程似乎只是一个简单的select语句,所以要使它从多个其他地方重用,最简单的方法就是将它转换成一个视图。
如您所说,如果where子句可能因代码的使用位置而不同,那么只需从视图中省略where子句,并让每个调用方设置自己的where子句,以将视图返回的数据限制为所需的数据。

相关问题