mysql union order by 分別排序問題

兩種方式: spa

第一種: 排序

先各自排序,而後經過臨時表嵌套再合併結果,注意排序後面必須加入 limit,不然order by不起做用 it

SELECT * FROM (SELECT * FROM t1 WHERE id IN (1,3,6) ORDER BY utime DESC limit 5) AS a 
UNION ALL
SELECT * FROM (SELECT * FROM t1 WHERE id IN (2,4,5) ORDER BY utime DESC limit 5) AS b
;
第二種: im

經過加入臨時列px查出全部結果後,再按px,utime排序 time

SELECT * FROM( SELECT 0 AS px,id,NAME,utime FROM (SELECT * FROM t1 WHERE id IN (1,3,6)) AS a  UNION ALL SELECT  1 AS px,id,NAME,utime FROM (SELECT * FROM t1 WHERE id IN (2,4,5)  ) AS b ) AS c ORDER BY px,utime DESC

相關文章
相關標籤/搜索