Общие > Базы данных
сортировка выборки
Ленивый гость:
--- Цитировать ---тебе же уже написали
--- Конец цитаты ---
Жаль, что ты постишь, не читая.
В вышеприведенном примере ORDER BY value1, value2 LIMIT 0,3
приведет к
4 | a | 20 |
1 | b | 10 |
2 | c | 40 |
а получить надо
1 | b | 10 |
4 | a | 20 |
2 | c | 40 |
Наверняка решалось бы вложенным запросом
что то типа SELECT ( SELECT * from table Order by value1 ) Order by value2
, но MYSQL их не поддерживает. Потому и спрашиваю профсовет.
NeoNox:
Как вариант временная таблица.
А средствами языка а не MySQL нельзя вторую сортировку провести?
Maniac:
Согласен с NeoNox
Дергани всю выборку в массив, а затем отсортирую по полю \'value\'
fidget:
Ленивый гость
я всегда читаю перед тем как пощу :) но я прочитала то, что ты написал словами :) (там не где не говорилось, что сортировка по value1 уже может нарушиться ;) ), а вот твой пример действительно прохлопала :)
--- Цитировать ---SELECT ( SELECT * from table Order by value1 ) Order by value2
, но MYSQL их не поддерживает.
--- Конец цитаты ---
хм .. я не уверена, но боюсь такую конструкцию не поддерживает не только MySQL , но и SQL-99, по крайней мере после быстрого просмотра стандарта я там такого не нашла.
Думаю тебе лучше это реализовать как предложил Nox - с помощью средств языка.
rembo:
--- Цитировать ---Дергани всю выборку в массив, а затем
--- Конец цитаты ---
Не согласен, для достаточно больших массивов данных и всяких заморочек с кодовыми таблицами такой метод не подойдет. Видимо придется тебе всетаки с мускулом помучиться: если поля по которым ты сортируешь не целочисленные то проиндексуй и тому подобное.
В противном случае если массивы коротенькие и сортировать надо цифры или буквы латинницы то метод NeoNox-a не повлияет на производительность.
Навигация
Перейти к полной версии