Mysql
 sql >> база данни >  >> RDS >> Mysql

SQL решение за класиране

Леко модифицирана заявка от статията в моя блог:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql как да конвертирам varchar(10) в TIMESTAMP?

  2. Нечувствителна заявка за търсене в MySQL

  3. Възможно ли е да се извика съхранена процедура в изглед?

  4. Изходът на Python заменя не ASCII знаци с �

  5. създадох масиви в PHP 5.6 с [] в PHP 7.1 дават фатална грешка