durch Kommas getrennte Zeichenfolge ausgewählter Werte in MySQL


73

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"

Antworten:


171

Überprüfen Sie dies

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

11

Wenn Sie mehrere Zeilen für parent_id haben.

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

Wenn Sie Leerzeichen durch Komma ersetzen möchten.

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

1
Gehen Sie für GROUP_CONCAT :)
Sanal K

8

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:

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

7

Versuche dies

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

Ergebnis wird sein

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

7

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;

4

Das Standardtrennzeichen zwischen Werten in einer Gruppe ist Komma (,). Verwenden Sie SEPARATORwie unten gezeigt, um ein anderes Trennzeichen anzugeben .

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

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


nette Antworten. In diesem Beispiel ist ein Leerzeichen nach einem durch Komma getrennten Leerzeichen mit dieser Antwort möglich.
Yagnesh bhalala


0

Nur für Leute, die dies in SQL Server tun: Verwenden Sie diese Option STRING_AGG, um ähnliche Ergebnisse zu erzielen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.