【发布时间】:2013-06-02 17:21:35
【问题描述】:
如何从 MySQL 表中选择除前 10 条记录之外的所有记录?
(我知道limit 10,x 会选择第 10 到第 x 的记录,但是我应该使用什么来代替 x 来选择所有剩余的记录?)
【问题讨论】:
-
不能用 COUNT 函数计算 X 吗?
-
@filipehd 我试过 x=COUNT(*),但没用
如何从 MySQL 表中选择除前 10 条记录之外的所有记录?
(我知道limit 10,x 会选择第 10 到第 x 的记录,但是我应该使用什么来代替 x 来选择所有剩余的记录?)
【问题讨论】:
使用OFFSET。然后您可以跳过 10 条记录并选择剩余的记录直到结束。
那么你的查询应该是这样的
SELECT field FROM table WHERE (condition) LIMIT 18446744073709551615 OFFSET 10;
【讨论】:
OFFSET 不是有效的 MySQL 子句。
OFFSET 是一个有效的mysql子句。问题是它必须在LIMIT 子句之后,否则它将不起作用。检查文档:dev.mysql.com/doc/refman/5.0/en/select.html
LIMIT 的一部分是有效的,但不能像上面的答案所暗示的那样单独存在。
LIMIT 10, 18446744073709551615
最好习惯 LIMIT 条件,因为您也可以将其用于分页。
【讨论】: