簡體   English   中英

MySQL中的UNION查詢

[英]UNION query in MySQL

我有這兩個查詢。

select * from blog_post where isDelete=0 
          and pOrder !=0 order by pOrder asc
select * from blog_post where isDelete=0 
          and pOrder=0 order by postID desc

一切正常。

但是當我嘗試將這兩個查詢合並為union

select * from 
    ((select * from blog_post 
               where isDelete=0 and pOrder !=0 
               order by pOrder asc) 
      union all 
     (select * from blog_post 
               where isDelete=0 and pOrder=0 
               order by postID desc )) as tbl1

它以升序提供第二個查詢的輸出,但在查詢中以降序提供。

您可以嘗試如下。

(select * from blog_post where isDelete=0 and pOrder !=0 order by pOrder asc)
UNION
(select * from blog_post where isDelete=0 and pOrder=0 order by postID desc)

這樣嘗試

select * from(select col1,col2,...colN,'1' as sorting from blog_post where isDelete=0 and pOrder !=0 order by pOrder asc UNION All select col1,col2,...colN,'1' as sorting from blog_post where isDelete=0 and pOrder=0 order by postID desc) temp order by sorting asc,if (sorting=1,pOrder,0) asc,if (sorting=2,postID,0) desc

您可以嘗試以下方法:

select * from blog_post where isDelete=0 and pOrder != 0
UNION ALL
select * from blog_post where isDelete=0 and pOrder = 0
order by  pOrder,postID 

我通過以下方法解決了該查詢。

選擇* from blog_post,其中isDelete = 0排序(大小寫為pOrder,則為0,然后(從Blog_post選擇Max(pOrder)+ 1),否則pOrder結束)asc,postID desc

感謝您對這個問題的評論,我只是在處理它,上面的查詢使我很滿意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM