繁体   English   中英

在一个查询中更新ID相同的多行(laravel)

[英]Update multiple rows where id is the same in one query (laravel)

我不知道这个问题是否被正确地问了,但这是。 我可能有60多个变量:

$id = $_POST['id'];
$job_type_buyer = $_POST['job_type_buyer'];
$job_type_partner = $_POST['job_type_partner'];
$job_type_locum = $_POST['job_type_locum'];
// etc...

我想一次更新多行,例如$id = 3;

我的表结构是这样的:

meta_id    id    meta_key          meta_value
1          3     job_type_buyer    1
2          3     job_type_partner  0
// etc...

目前,我正在运行多个查询以实现我想要的:

DB::table('people_job_types')
 ->where('id', $id)
 ->where('meta_key', 'job_type_buyer')
 ->update( ['meta_value' => $job_type_buyer] 
);

DB::table('people_job_types')
 ->where('id', $id)
 ->where('meta_key', 'job_type_partner')
 ->update( ['meta_value' => $job_type_partner] 
);

// etc...

我知道这可能需要一段时间才能启动,并且代码结构本身是错误的。

题:

如何通过一个查询一次更新所有行? 我应该使用数组吗?

对不起,英语不好,谢谢您的回答。

尝试以下类似的方法。 希望对您有帮助

for($i=0;$i<2;$i++){

DB::table('people_job_types')
 ->where('id', $id) 
->where('meta_id', '1') //here that id just pass it loop like 1 n 2....
 ->where('meta_key', '$job_type_partner')
 ->update( ['meta_value' => $job_type_partner] 
);

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM