Php 将包含计算和表更新的SQL查询转换为存储过程

Php 将包含计算和表更新的SQL查询转换为存储过程,php,mysql,Php,Mysql,是否有人可以帮助将此查询转换为MySQL的存储过程 查询如下> UPDATE `2015-06` SET `Cost`=( CEIL( `DurationMin`*65.00 )/100 ), `Location`='New Caledonia - Mobile' WHERE `Cost` IS NULL AND

是否有人可以帮助将此查询转换为MySQL的存储过程

查询如下>

UPDATE
    `2015-06`
SET
    `Cost`=(
                CEIL(
                        `DurationMin`*65.00
                    )/100
            ),
    `Location`='New Caledonia - Mobile'
WHERE
    `Cost` IS NULL

    AND

    SUBSTR(
            `Dialed`,
            1,
            8
    ) = '01168779'
简要说明,此查询使用以下更改的参数运行多次(已说明)

2015-06
==这是一个月。
65.00
==这是每分钟收费的金额。我除以100,因为DB有一些奇怪的浮点值问题,否则会出现,因此硬币将存储为整数,不带小数。
newcaledonia-Mobile
==这是位置字符串。
01168779
==要检查的第一个(在本例中为
8
)数字

SUBSTR从拨号字段中获取第一个X位数。数字(在本例中为
8
)也需要是一个参数

生成的存储过程或函数的伪代码(我把两者混淆了)如下所示(我认为应该是这样的)

Foo(
TableName,#在上述示例中,`2015-06`位置
金额,#在上述示例中,`65.00`位置
地点,#……`新喀里多尼亚-移动'地点
DigitLength,#子字符串中的第三个参数
数字#使用上述示例,这将是“01168779”位置。
);

问题是这些查询也必须按顺序运行(目前使用一个PHP脚本来调用它们,效果很好,但每个查询都需要一些时间才能完成。我看不到加快速度的真正方法,但如果可能的话,我欢迎进行优化。

您尝试过转换吗?没有太多关于通过传递表名和内联计算来更新表的文档另外,一些普通的查询命令不起作用,我知道其中有一些技巧,所以,很抱歉,我的尝试的摘要含糊不清,但尝试太多,所有这些都不比上面的更接近完成,发布它们只会增加混乱,可能会导致错误的解决方案。我觉得上面的细节已经足够解决这个问题了m以获得此特定问题的特定解决方案:)你是说你有一个名为“2015-06”的表吗?@danb-是的。事实上,这些表的格式可以追溯到15年前。所以你想编写一个存储过程来执行所有更新以提高效率?你认为这会减少对服务器的调用吗?不确定你想做什么。
Foo(
     <varchar> TableName, # In the above example, the `2015-06` position
     <int> Amount, # In the above example, the `65.00` position
     <varchar> Location, # ... `New Caledonia - Mobile` position
     <int> DigitLength, # The 3rd param in the SUBSTR
     <varchar> Digits # Using the above example this would be the `01168779` position.
);