gpt4 book ai didi

php - Eloquent mass 插入,重复键更新

转载 作者:可可西里 更新时间:2023-11-01 07:08:56 25 4
gpt4 key购买 nike

我在做:

$data = [
['amodule'=>'amodule', 'akey'=>'first_example', 'avalue'=>'4096', 'created_at'=>'2014-09-21'],
['amodule'=>'amodule2', 'akey'=>'sec_example', 'avalue'=>'4097', 'created_at'=>'2014-09-22'],
['amodule'=>'amodule2', 'akey'=>'sec_example', 'avalue'=>'4097', 'created_at'=>'2014-09-22'],
];

Models\Snapshot::insert($data);

只是执行批量插入。现在我想为此添加一个 ON DUPLICATE KEY。关于如何做的任何想法?或者在列表中忽略重复项?

提前致谢...

最佳答案

Eloquent 目前不支持这个,你必须把它写成一个原始查询。

// generates (?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?)
$valueString = implode(',', array_fill(0, count($data), '(' . implode(',', array_fill(0, count($data[0]), '?')) . ')'));
$values = [];

// Flattens the array
foreach($data as $row) {
foreach($row as $value) {
$values[] = $value;
}
}

// Perform the insert
\DB::insert(
"insert into `snapshots` (`amodule`, `akey`, `avalue`, `created_at`) values {$values} on duplicate key update",
$values
);

请记住,为了触发 on duplicate key update,至少有一个插入值必须具有主键或唯一键。

关于php - Eloquent mass 插入,重复键更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26026087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com