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

Peringkat Baris dalam Tampilan MySQL

Gunakan:

SELECT t.id,
       t.variety,
       (SELECT COUNT(*) FROM TABLE WHERE id < t.id) +1 AS NUM
  FROM TABLE t

Ini bukan cara yang ideal untuk melakukan ini, karena kueri untuk nilai num akan dieksekusi untuk setiap baris yang dikembalikan. Ide yang lebih baik adalah membuat NUMBERS tabel, dengan satu kolom berisi angka mulai dari satu yang bertambah ke angka yang sangat besar, lalu gabung &referensikan NUMBERS tabel dengan cara yang mirip dengan contoh variabel berikut.

Peringkat MySQL, atau Kekurangannya

Anda dapat mendefinisikan variabel untuk mendapatkan fungsionalitas nomor baris psuedo, karena MySQL tidak memiliki fungsi peringkat:

SELECT t.id,
       t.variety,
       @rownum := @rownum + 1 AS num
  FROM TABLE t,
       (SELECT @rownum := 0) r
  • SELECT @rownum := 0 mendefinisikan variabel, dan set ke nol.
  • r adalah alias subquery/tabel, karena Anda akan mendapatkan kesalahan di MySQL jika Anda tidak mendefinisikan alias untuk subquery, meskipun Anda tidak menggunakannya.

Tidak Dapat Menggunakan Variabel dalam Tampilan MySQL

Jika ya, Anda akan mendapatkan kesalahan 1351, karena Anda tidak dapat menggunakan variabel dalam tampilan karena desain . Perilaku bug/fitur didokumentasikan di sini .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghitung kemunculan kata dalam kolom tabel

  2. Bagaimana cara mengisi lubang di bidang kenaikan otomatis?

  3. Mysql:Setel rangkaian karakter kolom

  4. Kunci dan indeks asing

  5. Seleksi Bulan Sederhana Laravel