Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Solusi peringkat SQL

Permintaan yang sedikit dimodifikasi dari artikel di blog saya:

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. Cari tahu apakah sebuah tabel memiliki DELETE di CASCADE

  2. Kiri Gabung Tabel dan Gema di Tabel

  3. Dua sisipan di PHP/MySQL menggunakan LAST_INSERT_ID() dan baris dari tabel lain

  4. Permintaan MySql untuk mendapatkan semua kombinasi dua kolom dengan NULL jika tidak ada catatan yang cocok

  5. SELECT * FROM tabel WHERE kolom =1,2,3,4