Ich möchte ausgewählte Werte in MySQL in eine durch Kommas getrennte Zeichenfolge konvertieren. Mein Anfangscode lautet wie folgt:
SELECT id FROM table_level where parent_id=4;
Welches produziert:
'5'
'6'
'9'
'10'
'12'
'14'
'15'
'17'
'18'
'779'
Meine gewünschte Ausgabe würde folgendermaßen aussehen:
"5,6,9,10,12,14,15,17,18,779"
Verwenden Sie die Funktion group_concat () von mysql.
SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;
Es gibt Ihnen verkettete Zeichenfolge wie:
quelle
Versuche dies
SELECT CONCAT('"',GROUP_CONCAT(id),'"') FROM table_level where parent_id=4 group by parent_id;
Ergebnis wird sein
quelle
Erstens
set group_concat_max_len
, sonst erhalten Sie nicht alle Ergebnisse:SET GLOBAL group_concat_max_len = 999999; SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 group by parent_id;
quelle
Das Standardtrennzeichen zwischen Werten in einer Gruppe ist Komma (,). Verwenden Sie
SEPARATOR
wie unten gezeigt, um ein anderes Trennzeichen anzugeben .SELECT GROUP_CONCAT(id SEPARATOR '|') FROM `table_level` WHERE `parent_id`=4 GROUP BY `parent_id`;
Verwenden Sie dann, um das Trennzeichen zu entfernen
SEPARATOR ''
SELECT GROUP_CONCAT(id SEPARATOR '') FROM `table_level` WHERE `parent_id`=4 GROUP BY `parent_id`;
Weitere Informationen finden Sie unter GROUP_CONCAT
quelle
Verwenden Sie die
group_concat
Methode in MySQLquelle
blob
hierher.Nur für Leute, die dies in SQL Server tun: Verwenden Sie diese Option
STRING_AGG
, um ähnliche Ergebnisse zu erzielen.quelle