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 := 0mendefinisikan variabel, dan set ke nol.radalah 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 .