我想知道是否有办法使用LIMIT
运算符始终在结果集中包含第一行。我的意思是不管指定的任何范围。例如:
SELECT * FROM `table` LIMIT 5, 10
应该返回第一行和第 6 行到第 15 行,或者:
SELECT * FROM `table` LIMIT 200, 30
应该返回第一行和第 201 行到第 231 行。有没有办法做到这一点?
编辑第一行 id 始终为 0
我没有看到另一种方式:
(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);
您可以使用 UNION 连接 2 个选择:(SELECT * FROM table LIMIT 1) UNION (SELECT * FROM table LIMIT 5, 10)