Untuk memiliki nomor baris yang berarti, Anda perlu mengurutkan hasil Anda. Kemudian Anda dapat melakukan sesuatu seperti ini:
SELECT id, name
, (SELECT COUNT(*) FROM people p2 WHERE name='Spiewak' AND p2.id <= p1.id) AS RowNumber
FROM people p1
WHERE name = 'Spiewak'
ORDER BY id
Perhatikan bahwa klausa WHERE dari sub kueri harus cocok dengan klausa WHERE atau kunci utama dari kueri utama dan ORDER BY dari kueri utama.
SQL Server memiliki konstruksi ROW_NUMBER() OVER untuk menyederhanakan ini, tetapi saya tidak tahu apakah MySQL memiliki sesuatu yang istimewa untuk mengatasinya.
Karena posting saya di sini diterima sebagai jawaban, saya juga ingin memanggil tanggapan Dan Goldstein, yang sangat mirip dalam pendekatan tetapi menggunakan JOIN alih-alih sub kueri dan akan sering berkinerja lebih baik