Дима Г.
87 повідомлень
#12 років тому
Есть таблица:

CREATE TABLE IF NOT EXISTS `test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`date` date NOT NULL,
`team` varchar(50) NOT NULL,
`win` char(1) CHARACTER SET utf16 NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;


В таблице 10 записей:

INSERT INTO `test` (`id`, `date`, `team`, `win`) VALUES
(1, '2012-10-01', 'LA Lakers', '+'),
(2, '2012-10-04', 'LA Lakers', '+'),
(3, '2012-10-10', 'LA Lakers', '-'),
(4, '2012-10-19', 'LA Lakers', '-'),
(5, '2012-10-22', 'LA Lakers', '+'),
(6, '2012-10-01', 'CH Bulls', '+'),
(7, '2012-10-05', 'CH Bulls', '-'),
(8, '2012-10-10', 'CH Bulls', '+'),
(9, '2012-10-13', 'CH Bulls', '-'),
(10, '2012-10-17', 'CH Bulls', '-');


Как вывести данные не в таком виде (SELECT team, win FROM `test` ORDER BY team, `date`):

CH Bulls +
CH Bulls -
CH Bulls +
CH Bulls -
CH Bulls -
LA Lakers +
LA Lakers +
LA Lakers -
LA Lakers -
LA Lakers +


А вот в таком виде (вывод побед/поражений упорядочен по дате):

CH Bulls + - + - -
LA Lakers + + - + +
Дмитрий Карташов
12 повідомлень
#12 років тому
Например, так:


SELECT team, group_concat(win ORDER BY `date`)
FROM `test`
GROUP BY team
ORDER BY team;
Дима Г.
87 повідомлень
#12 років тому
cit_utc, ооо спасибо! Ты просто гений!
Дима Г.
87 повідомлень
#12 років тому
Чуть доработал

SELECT team, group_concat(win ORDER BY `date` SEPARATOR ' ') AS results
FROM `test`
GROUP BY team
ORDER BY team;