Pregunta cadena separada por comas de valores seleccionados en mysql


Quiero convertir valores seleccionados en una cadena separada por comas en MySQL. Mi código inicial es el siguiente:

SELECT id FROM table_level where parent_id=4;

Que produjo:

'5'
'6'
'9'
'10'
'12'
'14'
'15'
'17'
'18'
'779'

Mi salida deseada se vería así:

"5,6,9,10,12,14,15,17,18,779"

49
2017-10-24 06:22


origen


Respuestas:


Mira esto

SELECT GROUP_CONCAT(id)  FROM table_level where parent_id=4 group by parent_id;

106
2017-10-24 06:28



Si tiene varias filas para parent_id.

SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;

Si quieres reemplazar el espacio con una coma

SELECT REPLACE(id,' ',',') FROM table_level where parent_id=4;

9
2017-10-24 06:29



Utilizar group_concat () función de mysql.

SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;

Te dará cadena concatenada como:

5,6,9,10,12,14,15,17,18,779 

5
2017-10-24 06:33



Prueba esto

SELECT CONCAT('"',GROUP_CONCAT(id),'"') FROM table_level 
where parent_id=4 group by parent_id;

El resultado será

 "5,6,9,10,12,14,15,17,18,779"

5
2017-10-24 06:30



Utilizar group_concat método en mysql


2
2017-10-24 06:27



El separador predeterminado entre los valores en un grupo es coma (,). Para especificar cualquier otro separador, use SEPARATOR Como se muestra abajo.

SELECT GROUP_CONCAT(id SEPARATOR '|')
FROM `table_level`
WHERE `parent_id`=4
GROUP BY `parent_id`;

5 | 6 | 9 | 10 | 12 | 14 | 15 | 17 | 18 | 779

Para eliminar el separador, use SEPARATOR ''

SELECT GROUP_CONCAT(id SEPARATOR '')
FROM `table_level`
WHERE `parent_id`=4
GROUP BY `parent_id`;

Consulte para obtener más información GROUP_CONCAT


1
2018-01-27 19:27



Primero a set group_concat_max_lenDe lo contrario, no le dará todos los resultados:

SET GLOBAL  group_concat_max_len = 999999;
SELECT GROUP_CONCAT(id)  FROM table_level where parent_id=4 group by parent_id;

1
2018-01-16 06:30