texto separar registros por group_concat funcion ejemplos delimitada concatenar comas columnas campos cadena sql mysql concatenation

separar - MySQL Resultados como lista separada por comas



separar cadena delimitada por comas en sql server (3)

Necesito ejecutar una consulta como:

SELECT p.id, p.name, (SELECT name FROM sites s WHERE s.id = p.site_id) AS site_list FROM publications p

Pero me gustaría que la selección secundaria devuelva una lista separada por comas, en lugar de una columna de datos. ¿Es esto posible, y si es así, cómo?


En lugar de usar el group concat() , puede usar solo concat()

Select concat(Col1, '','', Col2) as Foo_Bar from Table1;

editar esto solo funciona en mySQL; Oracle concat solo acepta dos argumentos. En Oracle, puede usar algo como select col1 || '','' || col2 || '','' || col3 como foobar de table1; en el servidor sql usaría + en lugar de tuberías.


En mi caso, debo concatenar todo el número de cuenta de una persona cuyo número de móvil es único. Así que he usado la siguiente consulta para lograr eso.

SELECT GROUP_CONCAT(AccountsNo) as Accounts FROM `tblaccounts` GROUP BY MobileNumber

El resultado de la consulta es a continuación:

Accounts 93348001,97530801,93348001,97530801 89663501 62630701 6227895144840002 60070021 60070020 60070019 60070018 60070017 60070016 60070015


Puede usar GROUP_CONCAT para realizar eso, por ejemplo, algo así como

SELECT p.id, p.name, GROUP_CONCAT(s.name) AS site_list FROM sites s INNER JOIN publications p ON(s.id = p.site_id) GROUP BY p.id, p.name;