2015-11-16 85 views
0

我試圖組織在「orderindex」爲了在我的PHP函數循環與MySQL正確顯示列表中查詢輸出。MySQL查詢返回的結果,而爲了

目前我的SQL查詢是這樣的:

SELECT * FROM (SELECT NewCustInfo.Driver, SUBSTRING_INDEX(NewCustInfo.Driver, '/', -1) AS orderindex, SUBSTRING_INDEX(NewCustInfo.Driver, '/', 1) AS thedriver, NewCustInfo.id,NewCustInfo.Accomplished 
FROM NewCustInfo WHERE NewCustInfo.Driver REGEXP 'Test123/' AND NewCustInfo.Accomplished='0' ORDER BY orderindex DESC) DUMMY_ALIAS1 
UNION ALL 
SELECT * FROM (SELECT PickupSlip.Driver, SUBSTRING_INDEX(PickupSlip.Driver, '/', -1) AS orderindex, SUBSTRING_INDEX(PickupSlip.Driver, '/', 1) AS thedriver, PickupSlip.id,PickupSlip.Accomplished 
FROM PickupSlip WHERE PickupSlip.Driver REGEXP 'Test123/' AND PickupSlip.Accomplished='0' ORDER BY orderindex DESC) DUMMY_ALIAS2 
UNION ALL 
SELECT * FROM (SELECT DeliverySlip.Driver, SUBSTRING_INDEX(DeliverySlip.Driver, '/', -1) AS orderindex, SUBSTRING_INDEX(DeliverySlip.Driver, '/', 1) AS thedriver, DeliverySlip.id,DeliverySlip.Accomplished 
FROM DeliverySlip WHERE DeliverySlip.Driver REGEXP 'Test123/' AND DeliverySlip.Accomplished='0' ORDER BY orderindex DESC) DUMMY_ALIAS3 

我意識到這是由SELECT排序,而不是作爲一個整體,整個查詢。有沒有辦法訂購所有3個選擇的全部結果?

例如將3個選擇變成一個變量,然後以某種方式將它們連接成單個列表,然後使用ORDER BY顯示?

+0

你可以把它們放到數組,然後使用一些數組排序http://php.net/manual/en /array.sorting.php –

回答

1

按MySQL的上UNION語法,在最後選擇放置一個ORDER BY子句:

(SELECT a FROM t1 WHERE a=10 AND B=1) 
UNION 
(SELECT a FROM t2 WHERE a=11 AND B=2) 
ORDER BY a 
+0

我甚至不知道這一點。偉大的解決方案 –

+0

這就是它,謝謝!我應該先閱讀文檔......大聲笑 –