php - Laravel - 用不同的值更新多个记录

标签 php mysql laravel eloquent

我有一张 table ,类似这样:

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

我有一个数组:

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

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

...

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

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

最佳答案

这应该有效:

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

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

关于php - Laravel - 用不同的值更新多个记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35915664/

相关文章:

php - 使用可能的字典从 PHP 数组创建一个 JSON 字符串

MySQL 准备语句表 3

MYSQL 显示未找到重复项的所有行

Laravel 可选的 Url Slug 更正

php - Symfony - 应用程序在没有 Apache 服务器的情况下运行

php - CakePHP HABTM 过滤

javascript - PHP服务器只接受部分图片,跨域

查询之间的Mysql不起作用

ios - 向 iOS 设备发送推送通知

php - 使用从 MySQL TIME 字段检索的值计算时间差