Сортировка внутри группы

zenit

Guest
Сортировка внутри группы

Привет всем!

SELECT t1.aId as id, t1.approomscol, DATE_FORMAT(t1.startdate, '%d.%m.%Y') as startdate, t2.raionName as raion, t1.region, t1.price
FROM apparts as t1 LEFT JOIN raions as t2 ON t2.rid=t1.raion LEFT JOIN metro as t3 ON t3.metId=t1.metro WHERE t1.operation=1
ORDER BY t1.approomscol ASC,
CASE t1.approomscol WHEN 2 THEN t1.startdate ELSE t1.startdate*-1 END

Он не работает, мне надо чтобы в зависимости от поля
approomscol(я сортирую по 2 полям, это первое)
динамически определялось второе поле.

то есть для каждой группы(в рамках одной группы approomscol) свое второе поле для сортировки.

Можно ли как-нить это сделать средставми MySQL?
И вообще как это делается?
 

Demiurg

Guest
ORDER BY t1.approomscol ASC, if(t1.approomscol=2 , t1.startdate , -t1.startdate)
 

zenit

Guest
спасибо
а если есть несколько вариантов?
ну типа нет ли аналога конструкции switch?
 

zenit

Guest
мануал-то есть
но что то case у меня не работает
мож я что не правильно делаю?
 
Сверху