rim89
@rim89
программист-велосипедист

Как отсортировать выборку по определенному алгоритму?

Всем привет, есть некая выборка с LEFT Join которая возвращает, к примеру, ID вида
1,1,1,1,2,2,3,3,3
Можно ли ее привести к виду
1,2,3,1,2,3,1,3,1
?
  • Вопрос задан
  • 427 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Atlant77
Ну так на глаз это в 1000 раз проще выполнить через PHP, просто перебираешь массив выбираешь элемент из массива, записываешь в новый массив, в старом удаляешь и ищешь новый элемент, больше чем старый, пару строчек кода.
А на SQL это разве что как то через UNION пытаться и то вряд ли (99.99%)
Ответ написан
catanfa
@catanfa
Это можно сделать на SQL с помощью ORDER BY FIELD
https://www.electrictoolbox.com/mysql-order-specif...
Ответ написан
Вижу пока только вариант с временной таблицей. Надо одинаковые значения проиндексировать, дать каждому возрастающий индекс. И тогда помтом группировать по этим суб-индексам:
1, 1, 1, 1, 2, 2, 3, 3, 3
переделать в
1, 0
1, 1
1, 2
1, 3
2, 0
2, 1
3, 0
3, 1
3, 2

и потом группировать по второму индексу и сортировать по первым id
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы