sql >> Database teknologi >  >> RDS >> Mysql

SQL ranking løsning

En let ændret forespørgsel fra artiklen i min blog:

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


  1. Dumping af datablokke

  2. Hvordan kører man et specifikt script efter tilslutning til oracle ved hjælp af skinner?

  3. Escape-kolonnenavne i PDO-udsagn

  4. Opdater flere rækker ved hjælp af CASE WHEN - ORACLE