(SELECT * FROM tablica WHERE pole1=3 ORDER BY pole2)
UNION
(SELECT * FROM tablica WHERE pole1=2 ORDER BY pole2)
UNION
(SELECT * FROM tablica WHERE pole1=1 ORDER BY pole2)
MySQL сортировка по значениям в 2 полях
Надо произвести SELECT из таблица, чтобы вначале отсортировать выбранные ряда по полю1=3 и они сортируются между собой по алфавиту по значению поля2, затем ряды со значением поле1=2 и они сортируются по алфавиту, по полю2 и т.д.
Насколько я знаю при использовании ORDER BY нельзя пользоваться большими конструкциями, а можно только указать по какому конкретно полю будет сортировка.
Я только додумался до такого:
Код:
А если цифровых значений в поле1 значительно больше, может есть более простой метод?
или наоборот, точно не помню))
SELECT * FROM `table` ORDER BY `pole1` DESC, `pole2`
1)SELECT * FROM `table` ORDER BY `pole1`, `pole2` DESC
2)SELECT * FROM `table` ORDER BY `pole1` DESC, `pole2`
в первом случаем он отсортирует по полю1 по возрастанию чисел и по полю 2 по убыванию алфавита. А во втором случае он отсортирует как нужно, по убывания чисел поля1 и по возрастанию алфавита поля2