1

如果我SERIAL对表的主键使用类似 a(这是一个随机数)之类的东西,我如何从表中选择编号行?在 MySQL 中,我只是使用自动递增的 ID 来选择特定的行,但不确定如何使用任意编号序列来解决问题。

作为参考,这是我正在使用的表格:

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

1 回答 1

2

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

请注意,在此处包含该ORDER BY子句很重要,因为您关心结果的顺序(如果您不包含ORDER BY,则结果可能是任意排序的)。

如果您关心插入事物的顺序,则可以ORDER BYSERIALid在您的情况下),尽管并非总是如此,因为事务争用和其他事情可能会导致生成的SERIAL值没有严格排序。

于 2017-04-14T00:10:44.067 回答