[英]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.