Chcete-li mít smysluplné číslo řádku, musíte si výsledky seřadit. Pak můžete udělat něco takového:
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
Pamatujte, že klauzule WHERE dílčího dotazu musí odpovídat klauzuli WHERE nebo primárnímu klíči z hlavního dotazu a ORDER BY hlavního dotazu.
SQL Server má konstrukci ROW_NUMBER() OVER, která to zjednodušuje, ale nevím, jestli má MySQL něco speciálního, co by to řešilo.
Protože můj příspěvek zde byl přijat jako odpověď, chci také upozornit na odpověď Dana Goldsteina, která je svým přístupem velmi podobná, ale místo dílčího dotazu používá JOIN a často bude fungovat lépe