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

相关文章
相关标签/搜索