我正在 mysql 中处理存储过程。
我发现对于某些过程我必须编写相同部分的 sql 查询,但我需要一种方法在所有过程中重用相同的查询代码(不是结果),我该怎么做?
这是我的 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 子句之前的代码在所有过程中都是相同的,那么我如何重用该查询部分代码(不是结果)?
最佳答案
由于这个特定的过程似乎只是一个单一的、直接的 SELECT 语句,因此使其可从多个其他地方重复使用的最简单的方法就是将它变成一个 View 。
如果像您所说的那样,WHERE 子句可能会因使用代码的位置而有所不同,那么只需从 View 中省略 WHERE 子句,并让每个调用者设置自己的 WHERE 子句以限制 View 返回的数据无论它需要什么。
关于php - 如何在其他存储过程 mysql 中重用相同的查询代码(不是结果)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53727302/