Pour avoir un numéro de ligne significatif, vous devez ordonner vos résultats. Ensuite, vous pouvez faire quelque chose comme ceci :
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
Notez que la clause WHERE de la sous-requête doit correspondre à la clause WHERE ou à la clé primaire de la requête principale et le ORDER BY de la requête principale.
SQL Server a la construction ROW_NUMBER() OVER pour simplifier cela, mais je ne sais pas si MySQL a quelque chose de spécial pour y remédier.
Étant donné que mon message ici a été accepté comme réponse, je souhaite également appeler la réponse de Dan Goldstein, qui est très similaire dans son approche mais utilise un JOIN au lieu d'une sous-requête et sera souvent plus performant