我一直在寻找解决方案,我希望有人已经解决了这个问题,或者有一些改进的好主意.
我正在使用Laravel 5,我遇到了需要使用新值更新许多行的情况.现在我正在为所有这些行做一个for循环来更新它们,我想优化它,这样我就不会运行很多sql查询.这是一个示例代码:
<?php
//Well, the original code looks better than this, but the concept is the same
$myrows = [0,1,2,3,4,5,6,7,8,9];
$myvalues = [45,543,657,574,234,26457,2462,897,234,89032];
for($i=0;$i<count($myrows);$i++) {
MyClass::where('id', $myrows[$i])->update(['myColumn' => $myvalues[$i]]);
}
?>
Run Code Online (Sandbox Code Playgroud)
显然,这将执行10个查询(相同数量的我想更新的行),但我想只有一个查询要做到这一点,对于优化的目的.我知道能够使用whereIn(...) - > update(...)同时更新许多行,但是使用此方法,您只能将所有行更新为相同的值,而不是像我的那样更新不同的行例.
在此先感谢您的帮助!
Ein*_*mer -1
这不是 Laravel QueryBuilder 的问题。如果您只能通过一个 SQL 查询来完成您的工作,那么您几乎可以使用 Laravel 来完成。