【发布时间】:2018-09-16 22:28:32
【问题描述】:
我正在尝试找出使用Query Builder 或Eloquent 进行编码的最佳方法。
以最简单的形式,如果transactions 表中已有项目,它应该阻止插入新的购买 请求。除了运行完整的原始查询之外,我没有找到任何有用的参考。
INSERT INTO `transactions`
(`user_id`, `item_id`, `type`, `created_at`, `updated_at`)
SELECT
1, 186808, 'bought', NOW(), NOW()
WHERE
(
SELECT
SUM(
CASE
WHEN `type` = 'bought' THEN 1
WHEN `type` = 'sold' THEN -1
END
)
FROM `transactions`
WHERE
(`item_id`, `user_id`) = (186808, 1)
GROUP BY `item_id`
) = 0
【问题讨论】:
-
我对 Eloquent 或 QB 不是很熟悉,但如果这超出了他们的范围并且您必须使用原始查询,我不会感到惊讶。
-
这是代码审查吗?你在问什么?您有什么问题需要帮助?
-
我找不到有关如何执行此操作的任何参考。唯一的方法似乎只是做一个原始查询。我正在寻找有关如何在查询生成器中制定此查询的参考。
标签: mysql laravel-5 laravel-eloquent insert-into laravel-query-builder