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

标签 php mysql stored-procedures routines

我正在 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/

相关文章:

php - 从 MySQL 中提取数据到 json 数组

php - fatal error : Class 'Services_JSON' not found

php - Symfony2 FOSRestBundle PUT Action FORM 返回空结果

php - 按国家划分的表格

sql - 在 PostgreSQL 函数中声明并返回自定义类型

php - 如何使用数据库数据在AngularJS中创建图表?

php - Web环境中的执行顺序

php - SQL : Command Create Virtual Row If Not Exist

postgresql - Postgres pl/pgsql 错误 : column "column_name" does not exist

mysql - 如何在不传递参数的情况下调用存储过程?