concat_ws - group_concat mysql
MySQL GROUP_CONCAT con nulos (2)
Debe usar IFNULL
o COALESCE
en el valor de selectionId
directamente:
SELECT
userId,
GROUP_CONCAT(CONCAT(questionId, ''='', COALESCE(selectionId, ''NULL'')))
FROM selection
GROUP BY userId;
¿Hay una opción para hacer que la función Group_Concat de MySQL incluya nulos?
Considere el siguiente ejemplo de mi tabla fuente:
userId, questionId, selectionId
7, 3, NULL
7, 4, 1
7, 5, 2
Cuando pregunto en la tabla de selección con GROUP_CONCAT, obtengo lo siguiente:
7, 4=1,5=2
Me gustaría obtener lo siguiente:
7, 3=NULL,4=1,5=2
Para referencia, mi consulta se ve así:
Select userId, GROUP_CONCAT(CONCAT(questionId, ''='', selectionId))
From selection
Group by userId;
También intenté agregar un IFNULL como este:
Select userId, GROUP_CONCAT(IFNULL(CONCAT(questionId, ''='', selectionId), ''NULL''))
From selection
Group by userId;
pero eso produjo lo siguiente:
7, NULL,4=1,5=2
Nota: hay otra complejidad que olvidé incluir. El selectionId es una clave externa a otra tabla. Utilizo una combinación externa izquierda a la tabla selection_text. Mi consulta real incluye campos de esa tabla (estos campos se resuelven en NULL porque el ID de selección es nulo).
Solo debes IFNULL
la columna que puede ser NULL
;
SELECT userId, GROUP_CONCAT(CONCAT(questionId, ''='',
IFNULL(selectionId, ''NULL'')))
FROM selection
GROUP BY userId;
Demo here .