2017-04-14 42 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值不严格命令。