首页 > 数据库 > mysql教程 > 如何在 Laravel 中高效地创建 Insert...Select 语句?

如何在 Laravel 中高效地创建 Insert...Select 语句?

Mary-Kate Olsen
发布: 2024-11-02 06:43:02
原创
864 人浏览过

How can I create Insert...Select statements in Laravel efficiently?

在 Laravel 中创建 Insert...Select 语句

在数据库操作领域,Insert...Select 语句执行双重操作向表中插入数据的同时引用另一个表中的数据的功能。 Laravel 强大的 Eloquent ORM 和查询生成器提供了构建此类查询的有效方法。

使用 Laravel 进行查询转换

要将提供的 SQL 查询转换为 Laravel,我们不能使用由于 Laravel 当前版本的限制,单个统一查询。但是,我们可以通过将查询分为两部分来实现所需的功能:

第 1 部分:创建 Laravel Select 查询

首先使用以下命令创建 Laravel Select 查询Eloquent ORM 或查询生成器。此查询应类似于原始 SQL 查询的选择部分:

<code class="php">$select = User::where(...)
->where(...)
->whereIn(...)
->select(['email', 'moneyOwing']);</code>
登录后复制

第 2 部分:使用 Laravel 查询生成器插入数据

现在,您需要使用 Laravel 的查询生成器用于构建查询的插入部分。

<code class="php">$insertQuery = 'INSERT into user_debt_collection (email, dinero) ' . $select->toSql();
\DB::insert($insertQuery, $select->getBindings());</code>
登录后复制

在上面的代码中,我们使用 $insertQuery 手动构造插入查询,然后利用 DB::insert() 执行查询,为其提供查询字符串和查询绑定。

Laravel 5.7 更新

Laravel 5.7.17引入了 ->insertUsing() 方法,它将选择和插入查询的功能合并到一个方法中。

<code class="php">DB::table('user_debt_collection')->insertUsing(['email', 'dinero'], $select);</code>
登录后复制

这个简化的方法简化了创建 Insert 的过程。 ..Laravel 中的 Select 语句。

以上是如何在 Laravel 中高效地创建 Insert...Select 语句?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板