Mysql查询将两个有序查询与限制开始计数

时间:2016-11-24 21:45:30

标签: mysql

我是MySql的新手,我需要附加两个独立排序的查询的结果,限制整个事物的结果,并从某个索引开始返回。

这样的事情

  1. 第一个查询将产生一个像这样的有序列表

    a
    b
    c
    
  2. 第二个查询将导致另一个有序列表,如

    1
    2
    3
    
  3. 然后在第一个结果之后追加第二个结果

    a
    b
    c
    1
    2
    3
    

    然后只返回一定数量的元素并从特定索引开始,所以例如我只想要从索引2开始的总共4个返回值,结果应该是

    c
    1
    2
    3
    

    如您所见,“c”位于附加结果的索引2处,并返回4个元素。

    有人知道如何编写这个复杂的MySQL语句吗?

1 个答案:

答案 0 :(得分:0)

对于问题的第一部分,您可以使用UNION

  

UNION用于将多个SELECT语句的结果合并到一个结果集中。

了解更多here

至于问题的第二部分,您可以使用LIMIT。阅读此SO Answer

现在结合两者,假设你有两个表 - tbl1和tbl2为

tbl1                              tbl2
a                                 1
b                                 2
c                                 3

您可以按如下方式使用查询:

SELECT * FROM (SELECT * FROM tbl1 UNION SELECT * FROM tbl2) as t
LIMIT 2, 9430903;

限制条款中的第二个数字只是一个非常大的数字。因此,此查询将检索从第3行到最后一行的所有行。

希望这有帮助。