更新多个行,其中id在一个查询中相同(laravel)

时间:2016-06-28 14:39:46

标签: php mysql laravel-5.2

我不知道问题是否正确,但现在是。我可能有60多个变量:

    indexes =[]
    for l in labels:
        indexes.append(labels.index(l))
    sorted_labels = sorted(labels, key = lambda string: string.split()[-1])
    sorted_indexes = []
    for i, l in enumerate(labels):
        for j in range(len(labels)):
         if labels[i] == sorted_labels[j]:  
            sorted_indexes.append(j)
    sorted_handles = [handles [i] for i in sorted_indexes]
    handles =sorted_handles
    labels = sorted_labels

我想一次更新多行,例如$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...

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

问题:

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

抱歉英语不好,谢谢你的答案。

1 个答案:

答案 0 :(得分:0)

<强>代码

尝试以下内容。我希望它对你有所帮助

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] 
);

}