вторник, 17 ноября 2009 г.

mysql - GROUP_CONCAT

Есть таблица такого вида:
video_name    | genre

--------------+---------------

video1        | боевик

video2        | ужасы

video1        | мелодрамма

video1        | арт-хаус

video2        | триллер


Для того что бы посмотреть каккой диск к каким жанрам отностится нам поможет запрос вида:

SELECT video_name, GROUP_CONCAT(genre) as zhanr
FROM table
GROUP BY name

video_name    | zhanr

--------------+---------------

video1        | боевик, мелодрамма, арт-хаус

video2        | ужасы, триллер


Некоторые особенности. По умолчанию максимальная длина строки 1024. Если список жанров будет сильно длинным, то после 1024 знака строка обрежится. Для того что бы сделать длину строки больше, нужно один раз в начале сессии с mysql дать команду:

SET group_concat_max_len = 10000000;

1 комментарий: