当前位置: 首页 > 知识库问答 >
问题:

批量插入或更新Laravel雄辩没有Foreach循环

党祖鹤
2023-03-14

数据结构如下:

转介及统计数字

id | registered_user_id | date | promoter_ref_revenue | writer_ref_revenue

现在,对于这个表,我想插入两个数组,第一个数组将成功插入,如下所示:

$referralStats = ReferralStatistic::insert($userReferralStatsArray);
$referralStats = ReferralStatistic::insert($userWriterReferralStatsArray);

现在第二个数组是$userWriterReferralStatsArray,在插入这个数组时,我想检查是否重复了相同的日期和相同的注册用户id,然后它应该更新,而不是插入新行。我如何实现它,或者请建议我是否有其他好的方法来实现它,因为有大量的行。

提前感谢

共有1个答案

和丰羽
2023-03-14

不使用insert()方法,您可以使用updateOrCreate()Eloquent方法,或者只需调用模型的save()方法,该方法会更新模型(如果存在)

 类似资料:
  • 嗨,我的数据库结构如下: 表:分析 现在我想批量更新数据。例如,我想选择用户_id=1的数据以及2016-03-01和2016-03-20之间的日期。然后我想将结果中得到的所有记录的列从0更新为1。 我所做的工作如下: 但这不起作用,也没有显示任何错误。请让我知道在雄辩的帮助下我能做什么。提前谢谢。 我也看到了StackoverFlow中的其他问题,但答案建议运行foreach循环,这是我不想要的

  • 如何使用雄辩的ORM在Laravel中执行批量数据库插入? 我想在拉威尔完成这一点:https://stackoverflow.com/a/10615821/600516 但是我得到了以下错误。 SQLSTATE[HY093]:无效参数编号:混合命名参数和位置参数。

  • 问题内容: 我们如何使用雄辩的ORM在Laravel中执行批量数据库插入? 问题答案: 您可以使用。 例如:

  • 嘿,伙计们,我是拉威尔的新朋友。我有这张桌子 我如何能够获取每个科目的is_correct列计数? 谢谢伙计们!

  • 在有说服力的ORM上,是否有一种较短的方法在Laravel中插入数据? 目前我正在这样做: 就像你看到的,所有的列都像属性一样命名。 我知道您可以将对象与all()函数和fetch()一起使用。但是我从另一个对象(soap服务器)获取数据。 有没有办法转换这个?也许在模型上?

  • 问题内容: 有没有办法像在MySQL服务器上那样批量执行查询? 将无法使用,因为如果该字段已经存在,它将直接忽略该字段并且不插入任何内容。 将无法工作,因为如果该字段已经存在,它将首先对其进行处理,然后再次进行处理,而不是对其进行更新。 可以使用,但不能批量使用。 因此,我想知道是否可以批量发出这样的命令(一次不止一次发送)。 问题答案: 您 可以 使用INSERT … ON DUPLICATE