각 사용자별로 가장 오래된 주문을 업데이트해야합니다. 방법을 알아각 사용자에 대해 n 개의 레코드를 업데이트하십시오.
set @num := 0, @type := "";
UPDATE orders INNER JOIN(
SELECT id, user_id, created, row_number FROM (
SELECT id, user_id, created,
@num := if(@type = user_id, @num + 1, 1) AS row_number,
@type := user_id AS dummy
FROM orders
WHERE status = "queue"
ORDER BY user_id, created asc) AS grouped_orders
WHERE grouped_orders.row_number <= 2
) m ON orders.id = m.id SET orders.status = "process", orders.lock_id = "somehash";
제한을 늘 여기에 도움 – user606521