从MySQL中的简单SQL查询我怎么才能得到5个第一个结果?
然后,我怎样才能得到接下来的5个结果?选择SQL查询的一些结果
例如(伪代码):
select * from (select * from some_table) where <first 5 results>
select * from (select * from some_table) where <second 5 results (6-10)>
从MySQL中的简单SQL查询我怎么才能得到5个第一个结果?
然后,我怎样才能得到接下来的5个结果?选择SQL查询的一些结果
例如(伪代码):
select * from (select * from some_table) where <first 5 results>
select * from (select * from some_table) where <second 5 results (6-10)>
你应该能在年底拿到第5个结果与LIMIT 5
您的声明:
SELECT * FROM some_table LIMIT 5;
然后你可以得到如下查询结果6-10:
SELECT * FROM some_table LIMIT 5 OFFSET 5;
再举一个例子,你可以得到的结果与6-15这样的查询:
SELECT * FROM some_table LIMIT 10 OFFSET 5;
请记住,如果你不添加ORDER BY
声明,结果是以任意顺序检索。因此,在没有ORDER BY
的情况下使用LIMIT
和OFFSET
并没有意义。
我想我的例子可能太简单了。如果我的查询看起来像这样,你的解决方案仍然可以工作:'SELECT * FROM some_table where some_field> 11'? – Ash
你绝对可以添加一个WHERE子句并让事情仍然有效。真正的问题是,如果你不保证订单,说你想要“前5行”或“6-10行”没有意义。假设您有一张表,名称为“name_table”,其中有一列“first_name”,值为“Alice”,“Bob”,“Charlie”和“Dave”。如果你做SELECT * FROM name_table LIMIT 1,你可以得到任何值,但是如果你做SELECT * FROM name_table ORDER BY first_name LIMIT 1,那么你一定会得到“Alice” –
好吧,明白了。谢谢! – Ash
您可以通过一个SQL UNION
select * from (select * from some_table) where <first 5 results>
UNION ALL
select * from (select * from some_table) where <second 5 results (6-10)>
做到这一点
什么能阻止你一次获得前10个结果? – rkg
不同场合的不同结果。 – Ash