如果存在,则更新,否则插入。MySQL-PHP

马基斯

我问这个问题是为了找到最佳实践。

DB::table('owners')
   ->where('property_id',$id)
   ->update(array('person_id'=>$owner));

问题在于表中owners可能没有要更新的行。在那种情况下,我需要INSERT INTO代替UPDATE

我的问题是我每次必须运行2个查询,一个用于检查行是否已存在,另一个用于updateinsert into每次运行两个查询是否正确?有没有更好的方法来实现这一目标?我需要为用户保持快速的查询过程。

更新:该表owners是多对多关系的中间表。不幸的是我不能使用ON DUPLICATE KEY

哈里·格奥

很好,您可以尝试使用firstOrCreateLaravel方法来检查用户是否存在。之后,检索用户对象并将其传递给更新函数,否则,如果找不到该用户,该firstOrCreate方法将为您服务,因为它将使用您提供的数据创建一个新用户,并将自动增加最后一个用户+ 1 id。

还有一个选项可以使用firstOrNew,它会根据您传递的数组值检查实例是否存在,如果找不到匹配项,它将自动创建您要处理的模型的新实例以进行进一步操作。

这是例子 firstOrNew

示例控制器文件。

public function getFirstUserOrNew($email)
   {

      $user = User::firstOrNew(['email' => $email]);

      if($user)
      {
        $this->UpdateUser($user);
      }
      else
      {
       $this->CreateUser($user);
      }
   }

    public function UpdateUser(User $user)
    {
      //Do update stuff
    }
    
    public function CreateUser(User $user)
    {
      //Do create stuff
    }

PS-我来自希腊,如果您想使用母语讨论任何问题,请给我PM :)

编辑:感谢@Pyton的贡献看来您也可以使用这里updateOrCreate介绍方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更新(如果存在),否则插入php中?

来自分类Dev

php和mysqli SELECT查询(如果存在),然后对其进行更新,否则将其插入

来自分类Dev

如果字段存在则更新数量,如果不存在则插入新条目 mysql php

来自分类Dev

MySQL更新(如果存在),否则插入

来自分类Dev

MySQL和PHP:遍历表查找值(如果存在),如果不插入新值则更新

来自分类Dev

如果存在则更新,否则插入

来自分类Dev

如果存在则更新,否则插入

来自分类Dev

如果存在,则插入PHP

来自分类Dev

如何更新,如果在MySQL存在,否则插入

来自分类Dev

PHP PDO插入批量记录或更新(如果存在)

来自分类Dev

PHP 准备语句插入或更新如果行存在

来自分类Dev

SQL:如果存在,则更新,否则插入

来自分类Dev

如果postid是新的,则插入mysql,否则更新

来自分类Dev

C#更新,如果记录存在,否则插入新记录

来自分类Dev

SQLite-更新(不替换)(如果存在),否则插入

来自分类Dev

更新批处理文档(如果存在),否则插入MongoDB

来自分类Dev

Android sqlite(如果rowid存在更新,否则插入)

来自分类Dev

SQL Server-如果不存在则插入,否则更新

来自分类Dev

如果存在则更新,否则插入不起作用

来自分类Dev

MySQL:获取ID(如果存在),否则插入并返回ID

来自分类Dev

PHP MySQL-如果两个表中不存在该值,则插入

来自分类Dev

如果存在install.php,则访问install.php,否则访问index.php

来自分类Dev

如果存在install.php,则访问install.php,否则访问index.php

来自分类Dev

Mysql 如果为空则插入表中否则更新

来自分类Dev

MySql表插入,如果不存在,否则在非唯一列上更新

来自分类Dev

MySQL-更新或插入(如果存在)

来自分类Dev

MySQL选择,然后插入或更新(如果存在)

来自分类Dev

MySql 更新如果存在则插入如果不存在

来自分类Dev

PHP / MySQL:如果记录已经存在,如何返回信息(不更新)

Related 相关文章

  1. 1

    如何更新(如果存在),否则插入php中?

  2. 2

    php和mysqli SELECT查询(如果存在),然后对其进行更新,否则将其插入

  3. 3

    如果字段存在则更新数量,如果不存在则插入新条目 mysql php

  4. 4

    MySQL更新(如果存在),否则插入

  5. 5

    MySQL和PHP:遍历表查找值(如果存在),如果不插入新值则更新

  6. 6

    如果存在则更新,否则插入

  7. 7

    如果存在则更新,否则插入

  8. 8

    如果存在,则插入PHP

  9. 9

    如何更新,如果在MySQL存在,否则插入

  10. 10

    PHP PDO插入批量记录或更新(如果存在)

  11. 11

    PHP 准备语句插入或更新如果行存在

  12. 12

    SQL:如果存在,则更新,否则插入

  13. 13

    如果postid是新的,则插入mysql,否则更新

  14. 14

    C#更新,如果记录存在,否则插入新记录

  15. 15

    SQLite-更新(不替换)(如果存在),否则插入

  16. 16

    更新批处理文档(如果存在),否则插入MongoDB

  17. 17

    Android sqlite(如果rowid存在更新,否则插入)

  18. 18

    SQL Server-如果不存在则插入,否则更新

  19. 19

    如果存在则更新,否则插入不起作用

  20. 20

    MySQL:获取ID(如果存在),否则插入并返回ID

  21. 21

    PHP MySQL-如果两个表中不存在该值,则插入

  22. 22

    如果存在install.php,则访问install.php,否则访问index.php

  23. 23

    如果存在install.php,则访问install.php,否则访问index.php

  24. 24

    Mysql 如果为空则插入表中否则更新

  25. 25

    MySql表插入,如果不存在,否则在非唯一列上更新

  26. 26

    MySQL-更新或插入(如果存在)

  27. 27

    MySQL选择,然后插入或更新(如果存在)

  28. 28

    MySql 更新如果存在则插入如果不存在

  29. 29

    PHP / MySQL:如果记录已经存在,如何返回信息(不更新)

热门标签

归档