2017-04-14 45 views
1

如果我使用類似SERIAL(這是一個隨機數)作爲我的表的主鍵,如何從我的表中選擇一個編號的行?在MySQL中,我只是使用自動遞增的ID來選擇一個特定的行,但不知道如何用任意的編號順序來處理這個問題。如何在CockroachDB中選擇第n行?

僅供參考,這裏是我的工作表:

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

回答

2

使用LIMITOFFSET子句將返回第n行。例如SELECT * FROM tbl ORDER BY col1 LIMIT 1 OFFSET 9返回第10行。

請注意,在這裏包含ORDER BY子句很重要,因爲您關心結果的順序(如果不包括ORDER BY,可能結果是任意排序的)。

如果你關心哪些東西插入的順序,你可以ORDER BYSERIAL柱(id你的情況),但它並不總是如此,因爲交易的競爭和其他的東西可能會導致產生SERIAL值不嚴格命令。