[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка по заданным параметрам из таблицы
BorodinKO
Есть таблица Table вида:

id     name     param1     param2     param3
1 v2 1 2 4
2 rx 32 2 8 4
3 jbk 1 2 1
4 rp 2 4 3
5 fm 1 2 4
6 db 1 2 1


Задача имея id строки вывести все остальные строки в таком порядке что бы в начале была строка с заданным id второй строкой шла стока с максимальным числом схожих парметров и так далее

к примеру мы имеем id строки 3

3я строка:

id     name     param1     param2     param3
3      jbk        1          2        1


результат запроса должен вернуть следующее:

id     name     param1     param2     param3
3 jbk 1 2 1
6 db 1 2 1
5 fm 1 2 4
1 v2 1 2 4
2 rx 32 2 8 4
4 rp 2 4 3


как это сделать? можно ли обойтись 1 запросом?
Hello
ORDER BY param1, param2, param3


_____________
VPS от 5$, первые 2 месяца - бесплатно.
Игорь_Vasinsky
не, это слишком просто

строка по которой может идти сравнение может иметь вид

id name param1 param2 param3
3 jbk 11 22 101

- вот в чём фокус, тут простая сортировка не подойдёт

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
killer8080
SELECT *, IF(`id` = 3, 1, 0) AS `sort_field` 
FROM `table`
ORDER BY `sort_field` DESC , `id` DESC
Valick
killer8080, не то, сортировать надо по параметрам.
Вообще достаточно странная задача, даже немножко интересно в следствии чего она возникла. Немножко - потому, что есть мнение о существовании ошибки при проектировании БД.

_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.