mysql - Laravel 5 查询生成器 - 将 "ON DUPLICATE KEY UPDATE"附加到 insert() 调用

标签 mysql laravel laravel-5 query-builder fluent

我有一个继承 Illuminate\Database\Query\Builder 的类,并创建了一个自定义方法以在重复键更新时插入。

有什么方法可以将后缀附加到 insert() 调用中吗?

我环顾四周,在 Laravel 的查询构建器中没有太多关于 SQL 查询的后缀或前缀的资源。

如果可以避免,我希望将 Query Builder 中原始 insert() 方法的主体复制到我的自定义方法中,因为这不是好的做法。

感谢任何帮助。谢谢!

请注意,出于各种原因我不使用 Eloquent,但在这个问题中解释太多,超出了范围。

最佳答案

我无法在查询生成器本身中找到任何方法来执行此操作(缺少“原始”,这有点不对劲)。但是您可能想看看“Eloquent”updateOrCreate() 方法,例如在 Laravel 5.1 Create or Update on Duplicate 中讨论过的,或相关问题 Update Duplicate Data when insert data in laravel

https://gist.github.com/VadimGut/672da182921f70dfcea972e207e86676 处还有一个 insertOnDuplicateKeyUpdate() 函数的实现。 ,它组装原始 SQL 并运行它。

关于mysql - Laravel 5 查询生成器 - 将 "ON DUPLICATE KEY UPDATE"附加到 insert() 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37451113/

相关文章:

laravel - 如何从 HasMany 关系中分离元素?

laravel - 将参数传递给整数?

javascript - 为什么 php 变量不能与我的 Javascript/Laravel-5 Google map 代码一起使用?

需要带有 php 变量建议的 Javascript 代码

mysql - 最近从 sqlite 切换到 mysql。需要在c中转换一些代码

mysql - 计算 Laravel 中的查询时间?

php - Laravel 查询生成器通过未获取所有记录进行分组

mysql - 如何通过 MySQL 修剪 Woocommerce 简短描述(查找文本并修剪之后的所有内容)?

mysql - 从 MS SQL 服务器更新 MySql

Laravel -> Carbon Date -> 根据日设置月周数