2013-03-30 3 views
0

Я стараюсь сделать заказ по результатам запроса 2 таких вещейМогу ли я заказывать по имени столбца и кейсу в то же время в MySql?

by "reservationStatus", а затем одним из двух полей в зависимости от состояния резервирования.

это мой MySQL код

SELECT rs.reservationStatus, 
DATE_FORMAT(rs.dateFrom, "%d-%m-%Y %h:%i %p") AS pickupTime, 
DATE_FORMAT(rs.dateTo, "%d-%m-%Y %h:%i %p") AS dropoffTime, 
cu.fullName, 
ve.name FROM reservation AS rs 
INNER JOIN customers AS cu ON rs.CustomerID = cu.customerID 
INNER JOIN vehicles AS ve ON rs.Vehicle_id = ve.Vehicles_id 
WHERE rs.dateFrom <= DATE_ADD(curdate() , INTERVAL 86399 SECOND) AND rs.reservationStatus IN (1,2) 
ORDER BY rs.reservationStatus, CASE WHEN rs.reservationStatus = 1 THEN rs.dateFrom ELSE rs.dateTo END ASC 

Это дает мне ошибку синтаксиса. Однако, если я удаляю rs.reservationStatus и оставляю там статус дела, он запускается, но я не вижу, чтобы результаты упорядочивались так, как должно.

Что мне нужно, чтобы отсортировать мои результаты, как это

Как я могу получить мой запрос выше для запуска правильно?

+1

Какая синтаксическая ошибка? Я не получаю, когда я запускаю это –

+0

Я понятия не имею! Я получал синтаксическую ошибку, которая говорит, проверяйте свой синтаксис рядом с строкой blah blah blah. Но я просто закрыл все и снова запустил, и это сработало! Я действительно не знаю, что произойдет, но это, вероятно, что-то застряло в кеше или что-то странное. Спасибо :) – Jaylen

+1

Так что, что вы заказываете? Это нелогично с моей точки зрения. У вас есть один результирующий набор, некоторые записи, которые вы хотите заказать чем-то, а некоторые - другой. Заказ by используется для заказа всего набора записей. Я не знаю, почему вы когда-нибудь захотите это сделать в любой момент. – Xnoise

ответ

0

Выражения «CASE» производят некоторый результат столбца, основанный на выражении, полученном из другого содержимого столбцов или столбцов. Попробуйте скорее

SELECT 
column1, 
CASE WHEN ... THEN ... ELSE ... AS customcolumnname, 
column2.sometable, 
column3 .. 
FROM 
mytable 
ORDER BY 
customcolumnname ASC, 
column1 DESC 

или аналогичный.

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