Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Rozwiązanie do rankingu SQL

Nieco zmodyfikowane zapytanie z artykułu na moim blogu:

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. Wdrażanie aplikacji Java z bazą danych mysql desktop

  2. Obsługa podzapytania mySQL zwracającego wiele wierszy

  3. Po co usuwać init_command set engine=INNODB django DATABASE_OPTIONS po utworzeniu tabeli?

  4. Zapisywanie wartości szerokości i długości geograficznej jako ciągów lub liczb?

  5. Czy widok MySQL jest szybszy niż zwykłe zapytanie?