如果我为表格的主键使用SERIAL
(这是一个随机数)之类的东西,我怎样才能从表中选择一个带编号的行?在MySQL中,我只使用自动递增的ID来选择特定的行,但不知道如何使用任意编号序列来解决问题。
供参考,以下是我正在使用的表格:
+--------------------+------+-------+
| id | name | score |
+--------------------+------+-------+
| 235451721728983041 | ABC | 1000 |
| 235451721729015809 | EDF | 1100 |
| 235451721729048577 | GHI | 1200 |
| 235451721729081345 | JKL | 900 |
+--------------------+------+-------+
答案 0 :(得分:2)
使用LIMIT
和OFFSET
子句将返回第n行。例如SELECT * FROM tbl ORDER BY col1 LIMIT 1 OFFSET 9
返回第10行。
请注意,在此处包含ORDER BY
子句非常重要,因为您关心结果的顺序(如果您不包含ORDER BY
,则结果可能是任意排序的。)< / p>
如果您关心插入内容的顺序,可以ORDER BY
SERIAL
列(在您的情况下为id
),但情况并非总是如此,因为交易争用和其他事情可能导致生成的SERIAL
值不严格排序。