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"
Vérifie ça
SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 group by parent_id;
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;
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;
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"
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
Utilisation group_concat
méthode dans mysql
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