如何在MySQL中合并2个相反顺序的结果集

时间:2014-12-10 09:48:49

标签: mysql laravel

Mysql表结构:

id    date
1     2014-12-01
2     2014-12-02
3     2014-12-03
4     2014-12-04
5     2014-12-05
6     2014-12-06
7     2014-12-07

首先选择:

select * from table where id in (1,2,3,4) order by data desc;

第二次选择:

select * from table where id in (5,6,7) order by data asc;

我尝试在之间使用UNION并且失败了。似乎ORDER BY只能使用一次。 合并后,我想使用LIMIT OFFSET进行分页。

预期结果将是:

id    date
4     2014-12-04
3     2014-12-03
2     2014-12-02
1     2014-12-01
5     2014-12-05
6     2014-12-06
7     2014-12-07

我在项目中使用Laravel。它的分页很容易。所以我想知道如何用Laravel Eloquent来实现它。

1 个答案:

答案 0 :(得分:0)

试试这个。的 Fiddler Demo

SELECT * FROM 
(
      select * from table where id in (1,2,3,4) order by data desc
) Test
UNION
SELECT * FROM 
(
      select * from table where id in (5,6,7) order by data asc
) Test2