Mysql SQL存储过程查询(插入)

Mysql SQL存储过程查询(插入),mysql,stored-procedures,foreach,Mysql,Stored Procedures,Foreach,我有两张设计如下的桌子: 产品 |id(int 11)|名称(varchar 11)|类别(int 11)|价格(浮动) 平均价格 |类别(int 11)|日期(时间戳,将自动设置)|价格|平均值(浮动) 现在我想创建一个SQL存储过程,因此当我调用该过程时,它会计算每个类别的平均价格,并将avg_price和category保存到表“price_avg”中 我的主要问题是循环检查每个类别,并将计算出的金额直接保存到新表中,而不是将其返回给用户。 我知道基本程序在某种程度上是这样的: C

我有两张设计如下的桌子:

产品

|id(int 11)|名称(varchar 11)|类别(int 11)|价格(浮动)

平均价格

|类别(int 11)|日期(时间戳,将自动设置)|价格|平均值(浮动)

现在我想创建一个SQL存储过程,因此当我调用该过程时,它会计算每个类别的平均价格,并将avg_price和category保存到表“price_avg”中

我的主要问题是循环检查每个类别,并将计算出的金额直接保存到新表中,而不是将其返回给用户。 我知道基本程序在某种程度上是这样的:

    CREATE OR ALTER PROCEDURE avg_price
                /* no need of using a input parameter
                */
        ()
/* is RETURN correct? I would like to save the return directly
*/
RETURNS ( category INT(11),
          price    FLOAT,
                )
AS
BEGIN
    /* how to loop each category and do the calculation?
    */

  DO SUSPEND;
END

总而言之,我不知道如何将计算出的平均价格直接保存到另一个表中,以及如何以最快的方式循环每个产品并计算类别平均价格。

我建议您不要在数据库中执行业务逻辑,我认为如果你在代码中这样做,然后将数据保存在数据库中,会更容易、更快。不,这不是业务逻辑,只是我正在阅读的一本书中的一项任务,我只想解决它:/。我知道在PHP中执行这些丁格,并在数据库中操作后保存它们要容易得多。