我有一张 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/