Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.2-使用一个查询更新多行_Php_Mysql_Laravel - Fatal编程技术网

Php Laravel 5.2-使用一个查询更新多行

Php Laravel 5.2-使用一个查询更新多行,php,mysql,laravel,Php,Mysql,Laravel,所以我做了很多计算,最后我得到了需要保存到表中现有行的速率 我拥有的阵列将类似于以下内容: [ <model_id> => [ 'rate' => <some rate> ] <model_id_2> => [ 'rate' => <some other rate> ] ..... ] [ => [ “速率”=> ] => [ “速率”=> ] ...

所以我做了很多计算,最后我得到了需要保存到表中现有行的速率

我拥有的阵列将类似于以下内容:

[
    <model_id> => [
        'rate' => <some rate>
    ]
    <model_id_2> => [
        'rate' => <some other rate>
    ]
    .....
]
[
=> [
“速率”=>
]
=> [
“速率”=>
]
.....
]

现在很明显,我可以通过这个数组进行foreach,并对数组中的每一项进行更新,但最终可能会有100个更新调用。有没有办法(通过laravel雄辩的甚至是原始的sql查询)通过一次调用来完成所有这些更新

如果您担心请求花费的时间,您可以通过触发一个事件,然后将侦听器/作业排队,由谁来保存您的模型,以便异步处理该请求。例如,请访问


只要我知道您无法更新Laravel上的多行。

您可以尝试使用Eloquent
update()
更新多条记录。下面是我用来将多条记录更新到my表中的一些代码

\App\Notification::where('to_id', '=', 0)
                ->update(['is_read' => 1]); 

恐怕您必须使用MySQL的
CASE
命令进行原始查询,请参见例如,您是否有可能写出一个示例?表名为
pn\u养老金领取者\u成员\u年度\u摘要
。。。。主键(与
匹配)是
成员\u年度\u摘要\u id
。我不会使用它,因为它实际上意味着使用100个案例检查进行sql查询……这似乎有点可笑……好吧,在这个链接中有一个例子。我同意这很乏味,最多也不切实际,但是MySQL并没有很好的支持在同一时间根据不同的东西用不同的值更新很多东西。据我所知,恐怕两者都不是很有说服力。我实际上将其设置为队列作业,运行速度相对较快(对于100条记录,不到一秒钟),因此我将这样做。谢谢只是为了更新人员:您可以使用@NikunjK的答案更新多行。@user3494047是的,您可以通过一个查询更新多条记录,但值相同。OP的问题是通过一个查询更新具有不同值的多个记录。