Группировка результатов запроса MySQL в строку с разделителем

Пришлось создавать сложный (для меня) запрос MySQL, в котором нужно было выгружать значения из разных таблиц.
И всё бы хорошо, но для загрузки некоторых параметров была связь Many To One, что для меня означало требование использовать подзапросы. И тут ничего страшного нет, но результат подзапроса должен быть один, а у меня список, к примеру, ИДишников или результатов теста студентов.

Мне на помощь пришла функция GROUP_CONCAT(). Пример:
SELECT student_name,
        GROUP_CONCAT(test_score)
         FROM student
         GROUP BY student_name;

В данном случае результатам будет строка ['Имя студента','25,15,47,18']

Если, по какой либо причине, MySQL сервер возвращает результат в бинарном виде, то нужно добавить к результату конкатенацию с пустой строкой.
CONCAT(GROUP_CONCAT(test_score), "")

Use this ;)
  • +1
  • 20 апреля 2015, 16:57
  • igorrius

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
comments powered by Disqus