2013-11-14 161 views
1

我在同一個表上有兩個需要連接到一個mysqli結果的查詢。被證明是非常獨特的問題是排序單個語句,然後合併成一個結果,保存順序,所以我可以迭代每個結果。訂購每個查詢結果後聯合多個mysql查詢

下面是該查詢的簡化版本:

"SELECT number FROM items WHERE number > 0 ORDER BY number ASC" 

"SELECT number FROM items WHERE number >= 0 ORDER BY number DESC" 

所以給定一個表具有正的和負的值,結果應該是這樣:

1,2,3,4, 5,0,-1,-2,-3,-4,-5

然後結果通過一個PHP while循環。

+0

順便說一句我認爲你犯了一個錯字。你的兩個查詢都返回正數。 – ZeWaren

回答

0

像這樣的東西應該工作:

SELECT number FROM (
    SELECT * FROM (
     SELECT number, number AS sort1, 'a' AS sort2 FROM items WHERE number > 0 ORDER BY number ASC 
    ) s1 
    UNION 
     SELECT 0, 'b', 0 FROM items WHERE number = 0 
    UNION SELECT * FROM (
     SELECT number, 'c' AS sort1, number AS sort2 FROM items WHERE number < 0 ORDER BY number DESC 
    ) s2 
) ss1 
ORDER BY ss1.sort1 ASC, ss1.sort2 ASC 

此選擇3個部分結果的不同排序標籤,這樣就可以用它們來命令你怎麼想。 技巧部分是將0放在原來的位置。