首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Php:节省服务器资源-理论

Php:节省服务器资源-理论
EN

Stack Overflow用户
提问于 2018-08-16 03:37:19
回答 1查看 25关注 0票数 0

(使用Laravel)我已经在我的表中保存了行。在更新时,如果我取消选中复选框,则必须将该值重置为默认值。因此,我的复选框只接收选中的值,我从数据库中获取所有行,并首先将它们设置为默认值,然后只为选中的行设置所需的值。这在两行代码中完成,

代码语言:javascript
复制
\DB::table('tablename')->where('val', '=', $id)->update(['val' => 0]);
  \DB::table('tablename')->whereIn('id', $request->checked)->update(['val' => $id]);

这是一种方法,但对我来说,当我只需要设置默认值而不是选中的行时,将所有行都设置为默认值是很糟糕的。另一种选择是使用foreach,我不喜欢在控制器中使用它。那么问题1(理论上和重要的)--哪个需要更多的资源--海量sql和foreach?Q2 (实用)-考虑到它的拉威尔,你会如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-16 03:58:02

您可以在第一个查询中添加whereIn的倒数。

代码语言:javascript
复制
\DB::table('tablename')
    ->whereNotIn('id', $request->checked)
    ->where('val', '=', $id)
    ->update(['val' => 0]);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51865286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档