0

我想知道是否有办法使用LIMIT运算符始终在结果集中包含第一行。我的意思是不管指定的任何范围。例如:

SELECT * FROM `table` LIMIT 5, 10

应该返回第一行和第 6 行到第 15 行,或者:

SELECT * FROM `table` LIMIT 200, 30

应该返回第一行和第 201 行到第 231 行。有没有办法做到这一点?

编辑第一行 id 始终为 0

4

2 回答 2

3

我没有看到另一种方式:

(SELECT * from table LIMIT 1)
UNION
(SELECT * FROM table LIMIT 5, 10)

或正如斯科特指出的那样,带有新信息;)

SELECT * from table Where id = 0
UNION
(SELECT * FROM table LIMIT 5, 10)

不要忘记括号

要将 ORDER BY 或 LIMIT 应用于单个 SELECT,请将子句放在括 SELECT 的括号内:

(SELECT a FROM t1 WHERE a=10 AND B=1 order by a LIMIT 10) UNION (SELECT a FROM t2 WHERE a=11 AND B=2 ORDER BY 10);

于 2013-02-01T13:56:53.220 回答
2

您可以使用 UNION 连接 2 个选择:(SELECT * FROM table LIMIT 1) UNION (SELECT * FROM table LIMIT 5, 10)

于 2013-02-01T13:57:14.100 回答