PHP:如何使用 whereIn 子句根据多个 ID 更新一列

Posted

技术标签:

【中文标题】PHP:如何使用 whereIn 子句根据多个 ID 更新一列【英文标题】:PHP: How to update one column based on multiple ID using whereIn clause 【发布时间】:2019-06-16 14:18:45 【问题描述】:

我的示例数组名为“数字” ['一','二','三']

用户 ID -> 1 2 3

我有一个复选框,其值 = " $number - $user->RowID " 和名称 = "number[]"

我在刀片模板中循环了这些值。

现在的问题是我将如何更新一列,它是基于多个用户 ID 的数字。

我尝试像这样内爆 $number 数组:

$variable = implode(", ", $number)

我只能像这样更新“数字”列中的一个单元格:

一 - 1、二 - 2、三 - 3

我的模型代码:

    $numberArr = $request->input('number');
    $numbers = implode(", ", $numberArr);
    $this->number = $numbers;
    $this->update();

现在我需要的是根据用户 ID 更新列“数字”并根据他们的“-ID”分隔值。例如。

“数字”是列。

第 1 行:

行ID:1,编号:1

第 2 行:

行ID:2,编号:2

第 3 行:

RowID:3,编号:3

【问题讨论】:

您能否在表格中显示更新前后数据的示例数据 |行ID | |号码 | 1 一 2 二 3 三 @Capt.Teemo 表示您要更新数据,例如 user_id= 1 number= one,user_id=2 number=two, user_id=3 number=3 【参考方案1】:

您可以使用 foreach 循环来更新记录,如下所示

  foreach($array as $a)               
    $demo = MODEL::where('id', $a['user_id'])->update(['number' => $a['number']]);
   

【讨论】:

对不起,我忘了提到用户 ID 位于不同的阵列上。它们不在同一个数组上。 我在最新代码中所做的是我使用了 substr 函数。 $number = [“一 - 2”]; $result = substr($number, -2);如何使用 $result 变量作为基础?

以上是关于PHP:如何使用 whereIn 子句根据多个 ID 更新一列的主要内容,如果未能解决你的问题,请参考以下文章

根据 WHERE IN 子句数据排序结果集

Flutter Cloud Firestore whereIn 子句

使用 Spark 执行“WHERE IN”子句,如何仅重新训练第一个数据集的列?

如果where子句在SQL中有重复的条件值,如何获取多行

PL/SQL - 在 Where In 子句中使用“列表”变量

如何从 Android SQLite 查询的动态 ArrayList 编写 WHERE IN 子句