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 .