Truy vấn được sửa đổi một chút từ bài viết trong blog của tôi:
SELECT q.*,
@r := @r + 1
FROM (
SELECT @_acl_id := -1,
@r := 0
) vars
STRAIGHT_JOIN
(
SELECT acl.id AS acl_id, quote.id AS quote_id
FROM acl
JOIN quote
ON (acl.limiter IS NULL OR quote.reputation >= acl.limiter)
ORDER BY
acl.id ASC, quote.created_at DESC
) q
WHERE CASE WHEN @_acl_id <> acl_id THEN @r := 0 ELSE 0 END IS NOT NULL
AND (@_acl_id := acl_id) IS NOT NULL