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

entri peringkat di tabel mysql

Tidak ada cara untuk menghitung urutan (apa yang Anda sebut peringkat) dari sesuatu tanpa terlebih dahulu menyortir tabel atau menyimpan peringkat.

Namun, jika tabel Anda diindeks dengan benar (indeks popularitas), database akan mudah mengurutkannya sehingga Anda bisa mendapatkan peringkat Anda. Saya akan menyarankan sesuatu seperti berikut:

Pilih semua, termasuk peringkat

SET @rank := 0;
SELECT t.*, @rank := @rank + 1
FROM table t
ORDER BY t.popularity;

Untuk mengambil item dengan "id" tertentu maka Anda cukup menggunakan subquery sebagai berikut:

Pilih salah satu, termasuk peringkat

SET @rank := 0;
SELECT * FROM (
  SELECT t.*, @rank := @rank + 1
  FROM table t
  ORDER BY t.popularity
) t2
WHERE t2.id = 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tutorial SQL Kunci Utama – Cara Mendefinisikan Kunci Utama dalam Basis Data

  2. Bidang baris mana yang dikembalikan saat Pengelompokan dengan MySQL?

  3. Praktik terbaik untuk cache database lokal?

  4. Mengoptimalkan ORDER BY

  5. Cara Melakukan UPSERT sehingga saya dapat menggunakan nilai baru dan lama di bagian pembaruan