MySQL GROUP CONCAT с нулями
есть ли возможность сделать функцию Group_Concat MySQL включающей нули?
рассмотрим следующий пример из моей исходной таблице:
userId, questionId, selectionId
7, 3, NULL
7, 4, 1
7, 5, 2
когда я запрашиваю таблицу выбора с помощью GROUP_CONCAT, я получаю следующее:
7, 4=1,5=2
Я хотел бы получить следующее:
7, 3=NULL,4=1,5=2
Для справки, мой запрос выглядит так:
Select userId, GROUP_CONCAT(CONCAT(questionId, '=', selectionId))
From selection
Group by userId;
Я также попытался добавить IFNULL, как это:
Select userId, GROUP_CONCAT(IFNULL(CONCAT(questionId, '=', selectionId), 'NULL'))
From selection
Group by userId;
но это произведено следующее:
7, NULL,4=1,5=2
Примечание-есть еще одна сложность, которую я забыл включить. В selectionId является внешним ключом к другой таблице. Я использую левое внешнее соединение с таблицей selection_text. Мой реальный запрос включает поля из этой таблицы (эти поля разрешаются как NULL, так как selectionId равен null).
2 ответов
вы должны просто IFNULL
столбец, который может быть NULL
;
SELECT userId, GROUP_CONCAT(CONCAT(questionId, '=',
IFNULL(selectionId, 'NULL')))
FROM selection
GROUP BY userId;
демо здесь.
вы должны использовать IFNULL
или COALESCE
на selectionId
значение:
SELECT
userId,
GROUP_CONCAT(CONCAT(questionId, '=', COALESCE(selectionId, 'NULL')))
FROM selection
GROUP BY userId;