2012-09-04 40 views
0

我想用两个SELECT语句和UNION得到10个结果之前和特定ID之后。第一个SELECT使用ORDER BY DESC获得10之前,然后我试图在第二个ORDER BY ASC信封,以获得所有的结果在ASC秩序,但由于某种原因它不起作用。双ORDER BY排序与UNION语句

以下是我目前得到的结果是:

d 
2011-12-08 08:00:00 
2011-12-08 04:00:00 
2011-12-08 00:00:00 
2011-12-07 20:00:00 
2011-12-07 16:00:00 
2011-12-07 12:00:00 
2011-12-07 08:00:00 
2011-12-07 04:00:00 
2011-12-07 00:00:00 
2011-12-06 20:00:00 <- These top 10 results should ASC! 
2011-12-08 12:00:00 
2011-12-08 16:00:00 
2011-12-08 20:00:00 
2011-12-09 00:00:00 
2011-12-09 04:00:00 
2011-12-09 08:00:00 
2011-12-09 12:00:00 
2011-12-09 16:00:00 
2011-12-09 20:00:00 
2011-12-11 20:00:00 

,这里是什么,我想:

d 
2011-12-06 20:00:00 
2011-12-07 00:00:00 
2011-12-07 04:00:00 
2011-12-07 08:00:00 
2011-12-07 12:00:00 
2011-12-07 16:00:00 
2011-12-07 20:00:00 
2011-12-08 00:00:00 
2011-12-08 04:00:00 
2011-12-08 08:00:00 
2011-12-08 12:00:00 
2011-12-08 16:00:00 
2011-12-08 20:00:00 
2011-12-09 00:00:00 
2011-12-09 04:00:00 
2011-12-09 08:00:00 
2011-12-09 12:00:00 
2011-12-09 16:00:00 
2011-12-09 20:00:00 
2011-12-11 20:00:00 

回答

2
(
    SELECT d 
    FROM  myTable 
    WHERE id = '4h' AND d < '2011-12-08 12:00:00' 
    ORDER BY d DESC 
    LIMIT 10 
) UNION ALL ( 
    SELECT d 
    FROM  myTable 
    WHERE id = '4h' AND d >= '2011-12-08 12:00:00' 
    ORDER BY d ASC 
    LIMIT 10 
) 
ORDER BY d ASC