group_concat concat_ws mysql group-concat

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 .