2015-11-16 2 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, заказ по п после последнего выбора:

(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

Это он, спасибо! Я должен был сначала прочитать документацию ... lol –

Смежные вопросы