php - 如何缓存mysql存储的函数

标签 php mysql stored-procedures mariadb stored-functions

我有一个 mysql 查询,它使用存储函数为报告做一些繁重的数学运算。我需要在同一个查询中使用该存储函数 4 或 5 次。但是函数需要迭代中的数据,所以我不能将它设置为变量。

如果参数相同,您是否知道有什么方法可以缓存函数?我们可以自己构建这个,检查参数和缓存表,如果它们相同,就立即返回。但我想知道 MySql 是否内置了这个。我们使用的是 MariaDB 10

这里是函数调用的例子

dailySales2(sku.sku) as daily,
countOrders(sku.sku,90) as sold90,
ROUND(getStock(sku.sku) / dailySales2(sku.sku)) as daysOfStock,
getStock(sku.sku) as stock,
ROUND(GREATEST(1,qb.moq,(dailySales2(sku.sku) * (ROP + 5)) - (getStock(sku.sku)))) as   toOrder,

谢谢!

最佳答案

您是否尝试过嵌套查询?

之前:

SELECT sproc(col), ROUND(sproc(col)) FROM tbl

之后:

SELECT result, ROUND(result) FROM
(SELECT sproc(col) FROM tbl) AS nested

关于php - 如何缓存mysql存储的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21012295/

相关文章:

c# - 调用 RPG 程序的 iSeries 存储过程不向程序返回值

javascript - 使用php变量检查javascript中的变量

php - Laravel 4 从 URL 中删除 Index.php

mysql - 来自 2 个表的 SQL 连接,按来自第三个表的连接数据分组

mysql - 如何获取两周内特定日期的时间戳

PHP PDO 语句 : Incorrect number of arguments for PROCEDURE

php - 存储上传的用户图片

php - 如何制作 Accordion 菜单并在cookie中保存位置(包含代码)

mysql - 将 Excel 工作表导入 phpMyAdmin

mysql - 如何将多个select语句合并到一个表中