laravel中update如何使用子查询?
sql代码:
UPDATE cy_customer
INNER JOIN (
SELECT
customer_id,
CASE
WHEN MOD ( row_number() OVER ( ORDER BY id ), 3 ) = 0 THEN
1
WHEN MOD ( row_number() OVER ( ORDER BY id ), 3 ) = 1 THEN
2
WHEN MOD ( row_number() OVER ( ORDER BY id ), 3 ) = 2 THEN
3
END AS ascription
FROM
cy_customer_group_details
WHERE
customer_group_id = 5
) AS cy_customer_group_details ON cy_customer.id = cy_customer_group_details.customer_id
SET cy_customer.ascription = cy_customer_group_details.ascription
子查询是动态生成的,感觉这边只能用raw+动态生成sql才能解决
自问自答,这边可以通过
joinSub
来实现,代码如下: