2017-04-14 11 views
1

テーブルのプライマリキーにSERIAL(乱数)のようなものを使用すると、テーブルから番号付きの行を選択するにはどうすればよいですか? MySQLでは、自動増分IDを使用して特定の行を選択するだけですが、任意の番号付けシーケンスで問題にアプローチする方法がわかりません。CockroachDBでn番目の行を選択する方法は?

+--------------------+------+-------+ 
|   id   | name | score | 
+--------------------+------+-------+ 
| 235451721728983041 | ABC | 1000 | 
| 235451721729015809 | EDF | 1100 | 
| 235451721729048577 | GHI | 1200 | 
| 235451721729081345 | JKL | 900 | 
+--------------------+------+-------+ 

答えて

2

n番目の行を返しますLIMITOFFSET句を使用する:

は参考のために、ここで私が働いているテーブルです。たとえば、SELECT * FROM tbl ORDER BY col1 LIMIT 1 OFFSET 9は10番目の行を返します。

ORDER BY句をここに含めることが重要です。結果の順序が気になるからです(ORDER BYが含まれていないと、結果が任意に並べられている可能性があります)。

あなたは物事が挿入された順序を気にしている場合、それは必ずしもそうではないのですけれども、トランザクションの競合や他のものが生成さSERIAL値はできませんする可能性がありますので、あなたは、SERIAL列(あなたのケースでid)をORDER BYことができ厳密に注文された。

関連する問題