Общие > Базы данных

сортировка выборки

<< < (2/2)

Ленивый гость:

--- Цитировать ---тебе же уже написали
--- Конец цитаты ---


Жаль, что ты постишь, не читая.
В вышеприведенном примере 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 не повлияет на производительность.

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии