意味のある行番号を取得するには、結果を並べ替える必要があります。次に、次のようなことを行うことができます:
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
サブクエリのWHERE句は、WHERE句またはメインクエリの主キーと一致する必要があることに注意してくださいおよび メインクエリのORDERBY。
SQL Serverにはこれを単純化するためのROW_NUMBER()OVER構造がありますが、MySQLにこれに対処するための特別なものがあるかどうかはわかりません。
ここでの私の投稿が回答として受け入れられたので、Dan Goldsteinの応答も呼び出したいと思います。これは、アプローチが非常に似ていますが、サブクエリの代わりにJOINを使用し、多くの場合、パフォーマンスが向上します。