web-dev-qa-db-fra.com

chaîne de valeurs sélectionnées séparées par des virgules dans mysql

Je veux convertir les valeurs sélectionnées en chaîne séparée par des virgules dans MySQL. Mon code initial est le suivant:

SELECT id FROM table_level where parent_id=4;

Qui a produit:

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

Ma sortie désirée ressemblerait à ceci:

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

Vérifie ça

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

Si vous avez plusieurs lignes pour parent_id.

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

Si vous souhaitez remplacer l’espace par une virgule.

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

Premier à set group_concat_max_len, sinon cela ne vous donnera pas tout le résultat:

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

Essaye ça

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

Le résultat sera

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

Utilisez group_concat () fonction de mysql.

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

Cela vous donnera une chaîne concaténée comme:

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

Utilisation group_concat méthode dans mysql

2
hepizoj

La séparation par défaut entre les valeurs d'un groupe est la virgule (,). Pour spécifier un autre séparateur, utilisez SEPARATOR comme indiqué ci-dessous.

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

Pour éliminer le séparateur, utilisez ensuite SEPARATOR ''

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

Reportez-vous pour plus d'informations GROUP_CONCAT

1
Rohan Khude