rot*_*rcz 14 php mysql fluent laravel eloquent
$cardQueryList = [];
foreach($cards as $cardName => $quantity) {
$cardQueryList[] = [
'username' => $user->username,
'card_uid' => $card->uid,
'have_quantity' => $quantity
];
}
Collection::insert($cardQueryList);
Run Code Online (Sandbox Code Playgroud)
即使行存在,上面的代码也会创建新行.如果行存在,我该怎么做才会更新.如果没有它会创建行?一个雄辩或流利的答案将是最佳的,但如果没有别的办法,我会对原始开放.
我想用单个查询进行批量更新/插入.不是每个记录的for循环查询.理想情况下,出于显而易见的原因,我想打一次数据库.
我也已经检查了以下链接:
如果不存在则插入新记录,如果存在则更新,laravel eloquent
以上工作适用于单个记录更新/插入.如果我使用for循环运行会非常慢.我正在寻找一个允许在单个查询中进行批量插入/更新的答案.
注意:我正在使用'username'和'card_uid'作为我的密钥.所以基本上当我找到一个带有所述用户名和card_uid的行时,我想更新相应的行.否则创建一个新行.
通常,您将使用的 sql 类型将类似于以下内容:-
insert into `TABLE` ( `FIELD1`,`FIELD2`, `FIELD3` ) values ( 'VALUE1','VALUE2','VALUE3' )
on duplicate key
update
`FIELD1`='VALUE1',
`FIELD2`='VALUE2',
`FIELD1`='VALUE3';
Run Code Online (Sandbox Code Playgroud)
我无法告诉你你将如何在 Laravel 中使用它!糟糕 - 忘记了更新部分中的字段名称
| 归档时间: |
|
| 查看次数: |
1729 次 |
| 最近记录: |