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"
Karunakar
quelle

Antworten:

171

Überprüfen Sie dies

SELECT GROUP_CONCAT(id)  FROM table_level where parent_id=4 group by parent_id;
Naveen Goyal
quelle
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;
Sanal K.
quelle
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 
Nishu Tayal
quelle
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"
Ankit Sharma
quelle
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;
cksahu
quelle
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

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

Verwenden Sie die group_concatMethode in MySQL

hepizoj
quelle
Gibt es einen String zurück?
Karunakar
@ Karunakar, ich komme blobhierher.
Pacerier
0

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

star18bit
quelle