Здравствуйте.
Прошу помочь в решении задачи:
Есть MySQL таблица:
CREATE TABLE `bugreport` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`autor` INT(10) UNSIGNED NOT NULL,
`priority` INT(10) UNSIGNED NOT NULL,
`text` text NOT NULL,
`type` tinyint(1) UNSIGNED NOT NULL,
PRIMARY KEY (`id`)
);
По данным этой таблице нужно выполнить следующую сортировку:
Сначала все записи сортируем по полю `type`, внутри поля `type` разделяем с чередованием по полю `autor` при этом внутри каждого автора должна производиться сортировка по полю `priority`.
Желательно сортировку сделать средствами SQLПример:
INSERT INTO `test`.`bugreport` (`id` ,
`autor` ,
`priority` ,
`text` ,
`type`
)
VALUES (NULL , '1', '2', 'text - 121', '1'
), (NULL , '1', '1', 'text - 111', '1'
), (NULL , '1', '3', 'text - 131', '1'
), (NULL , '1', '2', 'text - 120', '0'
), (NULL , '1', '1', 'text - 110', '0'
), (NULL , '1', '3', 'text - 130', '0'
), (NULL , '2', '3', 'text - 231', '1'
), (NULL , '2', '4', 'text - 240', '0'
), (NULL , '2', '1', 'text - 211', '1'
), (NULL , '3', '1', 'text - 311', '1'
);
Получим:
| id | autor | priority | text | type | | 1 | 1 | 2 | text - 121 | 1 | | 2 | 1 | 1 | text - 111 | 1 | | 3 | 1 | 3 | text - 131 | 1 | | 4 | 1 | 2 | text - 120 | 0 | | 5 | 1 | 1 | text - 110 | 0 | | 6 | 1 | 3 | text - 130 | 0 | | 7 | 2 | 3 | text - 231 | 1 | | 8 | 2 | 4 | text - 240 | 0 | | 9 | 2 | 1 | text - 211 | 1 | | 10 | 3 | 1 | text - 311 | 1 |
|
После сортировок должен быть следующий порядок (
Особое внимание обратите па порядок поля autor):
| id | autor | priority | text | type | | 5 | 1 | 1 | text - 110 | 0 | | 8 | 2 | 4 | text - 240 | 0 | | 4 | 1 | 2 | text - 120 | 0 | | 6 | 1 | 3 | text - 130 | 0 | | 2 | 1 | 1 | text - 111 | 1 | | 9 | 2 | 1 | text - 211 | 1 | | 10 | 3 | 1 | text - 311 | 1 | | 1 | 1 | 2 | text - 121 | 1 | | 7 | 2 | 3 | text - 231 | 1 | | 3 | 1 | 3 | text - 131 | 1 |
|