128-(Update)批量更新提供一种思路

为批量更新数据提供一种思路!

我们在做批量更新时,会遇到下面三种情况:

情况: 1. 要批量更新的数据为空

  • 方法:略过

情况: 2. 库中已有的数据为空

  • 方法:则要批量更新的数据全部入库

情况: 3. 要批量更新的数据和库中已有的数据都不为空

  • 方法(举例):
// 要批量更新的数据
$update = [1,2,5,56];
// 库中已有的数据
$db = [2];
  • 第一步:得到交集intersect
// 得到`交集intersect`
$intersect = array_intersect($update, $db);

结果:

array:1 [
    1 => 2
]
  • 第二步:拿要批量更新的数据update交集intersect取差集,得到要插入库的数据
// 拿`要批量更新的数据update`与`交集intersect`取差集,得到要插入库的数据
$inserts = array_diff($update, $intersect);

结果:

array:3 [
    0 => 1,
    2 => 5,
    3 => 56
]

以上结果为要插入库的数据

  • 第三步:拿库中已有的数据db交集intersect取差集,得到从库中删除的数据
// 拿`库中已有的数据db`与`交集intersect`取差集,得到`从库中删除的数据`
$deletes = array_diff($db, $intersect);

结果:

[]

以上结果为从库中删除的数据

你可能感兴趣的:(128-(Update)批量更新提供一种思路)