【问题标题】:Laravel - update multiple records with different valuesLaravel - 用不同的值更新多条记录
【发布时间】:2016-03-10 11:48:53
【问题描述】:

我有一张桌子,类似这样:

|   key    | value |
|----------|-------|
| limit    |    15 |
| viplimit |    25 |
| ..       |       |

我有一个数组:

Array
(
[0] => Array
    (
        [key] => limit
        [value] => 10
    )

[1] => Array
    (
        [key] => viplimit
        [value] => 99
    )

...

现在,假设我们有 100 行。更新与数组对应的表的最佳方法是什么?

可以选择对每 100 行进行一次查询,但这只是性能不佳。

【问题讨论】:

  • 如果我的回答对您有帮助,请点赞并将其选为最佳答案,以感谢我抽出宝贵时间。

标签: php mysql laravel eloquent


【解决方案1】:

这应该可行:

$statement = "UPDATE mytable
    SET key = CASE id
        WHEN 1 THEN 'key'
        WHEN 2 THEN 'another_key'
        WHEN 3 THEN 'some_key'
    END,
    value = CASE id
        WHEN 1 THEN 15
        WHEN 2 THEN 25
        WHEN 3 THEN 45
    END
    WHERE id IN (1, 2, 3)
");

DB::statement($statement);

想想如何创建正确的查询。如果它是管理面板或不经常运行的东西,我会使用迭代来保持简单。

【讨论】:

    猜你喜欢
    • 2021-09-23
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多