Отображение результатов опроса с использованием group_concate в mysql с разбивкой по категориям - PullRequest
0 голосов
/ 10 сентября 2018

В моей базе данных Mysql есть таблица с названием «survey». Эта таблица используется для записи данных опроса. Структура таблицы показана ниже. Опрос проводится в разных городах, количество которых превышает 100.

НАИМЕНОВАНИЕ СТОЛОВ: Опрос

ID        options      user_ID   City 
----------------------------------------------
1         option1        101     City1
2         option2        102     City2
3         option3        103     City1
4         option1        104     City3
5         option1        105     City1
6         option2        106     City2
7         option3        107     City1
So on....
------------------------------------------------

Я хочу перечислить все user_ids, которые выбирают конкретную опцию, разделенную по городам. Как

city1
--------------------------------------------
option1  list of user_ids
option2  list of user_ids
option3  list of user_ids

city2
--------------------------------------------
option1  list of user_ids
option2  list of user_ids
option3  list of user_ids 
--------------------------------------

so on.......   

Если я запустил этот запрос

SELECT OPTIONS,
       GROUP_CONCAT(user_id ORDER BY user_id ASC SEPARATOR ' | ' )
  FROM survey WHERE city= 'city1'
 GROUP BY options  ;

Я получаю то, что хочу, но только для city1. Как я могу расширить его, чтобы получить список для всех городов, Пожалуйста, помогите спасибо.

1 Ответ

0 голосов
/ 10 сентября 2018

Вам просто нужно добавить город в вашем операторе выбора вместо того, где, например:

SELECT city,
       OPTIONS,
       GROUP_CONCAT(user_id ORDER BY user_id ASC SEPARATOR ' | ' )
  FROM survey 
 GROUP BY city, options;

Это приведет к:

city1 option1  list of user_ids
city1 option2  list of user_ids
city1 option3  list of user_ids
city2 option1  list of user_ids
city2 option2  list of user_ids
city2 option3  list of user_ids

Вы также можете заказать его, добавив в конце: order by options, city или order by city, options

...