基本的に、特定の行を参照する方法がありません。そのような参照がアプリケーションにとってどれほど重要であるかにもよりますが、ほとんどの場合、そのような状況を許可することはお勧めできません。これには多くの解決策があります。たとえば、
1) 通常、すべての行には一意の OID または ROWID フィールドが含まれており、"SELECT * FROM TABLE" では表示されませんが、暗黙的に要求された場合は使用できます。使用するデータベース エンジンに応じて、たとえば PostgreSQL で試してみてください
SELECT OID, * FROM TABLE WHERE OID = 'somevalue'
これは通常、テーブルに UNIQUE を強制したくない場合に使用されますが、誤った入力が後で表示された場合に対処します。
2) 自動インクリメンタル (DB マニュアルを参照) などの ID 列を追加し、更新して一意の ID を含めることができます。
ALTER TABLE table_name ADD column_name column-definition;
3) 自己インクリメントの「現在の合計」を使用できます。MySQL では多かれ少なかれ次のようになります。
SET @runtot:=0;
SELECT *, (@runtot := @runtot + 1) AS rt FROM table WHERE rt='somevalue'
(これは毎回計算を行うため、おそらく非効率的です)
4)前の回答で説明したように LIMIT を使用できます
5) 一意の ID を持つ別のテーブルを結合し、結果のリレーションを更新するか、クエリを組み合わせて静的 VIEW を作成して使用することができます
6) SELECT を動的に割り当てられた値 (RAND() や NOW() など) とともに使用できます。使用する関数とその使用方法によっては、テーブル全体で一意の識別子が作成されない可能性があります
7) 上記のソリューションを 2 つ以上組み合わせる
..そしておそらく他の多くのソリューション。とにかく、通常、いくつかの UNIQUE 制約で使用される "Id" 列があります。