使用 MySQL 中的偏移量选择除顶行以外的所有行
selecting all rows except top row using offset in MySQL
如何使用偏移子句获取除第一行以外的所有行。我正在使用
这样的查询
SELECT * FROM EMPLOYEES ORDER BY SALARY OFFSET 1;
但这在 MySQL 中不起作用。我在这里做错了什么?
除了 OFFSET 之外,您还必须使用 LIMIT
SELECT * FROM EMPLOYEES ORDER BY SALARY LIMIT 9999 OFFSET 1;
遗憾的是,在 MySQL 中,OFFSET 只能与 LIMIT 子句一起使用。所以你需要使用
SELECT * FROM EMPLOYEES ORDER BY SALARY LIMIT 18446744073709551615 OFFSET 1;
或
SELECT * FROM EMPLOYEES ORDER BY SALARY LIMIT 1, 18446744073709551615;
我从different question
中选择了那个限制号码
MySQL 8.0 可以使用 window 函数来执行此操作:
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY SALARY) AS rownum
FROM EMPLOYEES
) AS t
WHERE rownum > 1
ORDER BY SALARY;
如何使用偏移子句获取除第一行以外的所有行。我正在使用
这样的查询SELECT * FROM EMPLOYEES ORDER BY SALARY OFFSET 1;
但这在 MySQL 中不起作用。我在这里做错了什么?
除了 OFFSET 之外,您还必须使用 LIMIT
SELECT * FROM EMPLOYEES ORDER BY SALARY LIMIT 9999 OFFSET 1;
遗憾的是,在 MySQL 中,OFFSET 只能与 LIMIT 子句一起使用。所以你需要使用
SELECT * FROM EMPLOYEES ORDER BY SALARY LIMIT 18446744073709551615 OFFSET 1;
或
SELECT * FROM EMPLOYEES ORDER BY SALARY LIMIT 1, 18446744073709551615;
我从different question
中选择了那个限制号码MySQL 8.0 可以使用 window 函数来执行此操作:
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY SALARY) AS rownum
FROM EMPLOYEES
) AS t
WHERE rownum > 1
ORDER BY SALARY;