请问 eloquent ORM 如何实现下列 SQL 语句?

laravel 有 whereRaw() 支持带 SQL 函数的语句查询,但好像没找到有叫 updateRaw() 的方法。

UPDATE `transaction_records` SET `relation_id` = CONCAT_WS('-', `seller_id`, `buyer_id`, `product_id`) WHERE `relation_id` = '0-0-0' ORDER BY `id` LIMIT 100

transaction_records 表有 id, seller_id, buyer_id, product_id, transaction_count, relation_id, created_at, updated_at 等字段,其中 id 为自增主键, seller_id, buyer_id, product_id, relation_id 有普通索引,且前三者默认值为 0 ,最后一个默认值为 ‘0-0-0’ 。

Long2Ge
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

试试这样写呢

TransactionRecord::where('relation_id', '0-0-0')->update(['relation_id' => DB::raw('CONCAT_WS('-', `seller_id`, `buyer_id`, `product_id`)')]);
5年前 评论
讨论数量: 2

试试这样写呢

TransactionRecord::where('relation_id', '0-0-0')->update(['relation_id' => DB::raw('CONCAT_WS('-', `seller_id`, `buyer_id`, `product_id`)')]);
5年前 评论
yybawang

->update(DB::raw('写在这里'))

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!