Wie GROUP BY verwenden Zeichenfolgen in MySQL verketten?
-
02-07-2019 - |
Frage
Im Grunde ist die Frage, wie man von diesem zu erhalten:
id string 1 A 1 B 2 C
folgt aus:
id string 1 A B 2 C
Lösung
SELECT id, GROUP_CONCAT(string SEPARATOR ' ') FROM table GROUP BY id;
http: // dev. mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
Von dem obigen Link, GROUP_CONCAT
: Diese Funktion liefert ein String Ergebnis mit den verketteten Nicht-NULL-Werten aus einer Gruppe. Es gibt NULL zurück, wenn es keine nicht-NULL-Werte sind.
Andere Tipps
SELECT id, GROUP_CONCAT( string SEPARATOR ' ') FROM table GROUP BY id
Weitere Details hier .
Von dem obigen Link, GROUP_CONCAT
: Diese Funktion liefert ein String Ergebnis mit den verketteten Nicht-NULL-Werten aus einer Gruppe. Es gibt NULL zurück, wenn es keine nicht-NULL-Werte sind.
SELECT id, GROUP_CONCAT(CAST(string as CHAR)) FROM table GROUP BY id
geben Sie eine durch Kommata getrennte Zeichenfolge
SET group_concat_max_len=100000000
SELECT id, GROUP_CONCAT(string SEPARATOR ' ') FROM table GROUP BY id;
: - In MySQL können Sie die verketteten Werte Ausdruckskombinationen erhalten . Zur Beseitigung doppelte Werte, verwenden Sie die DISTINCT Klausel. So sortieren Sie Werte im Ergebnis, verwenden Sie die ORDER BY-Klausel. So sortieren Sie in umgekehrter Reihenfolge , fügen Sie die DESC (absteigend) Stichwort auf den Namen der Spalte, die Sie durch in der ORDER BY-Klausel zu sortieren. Der Standard ist aufsteigende Reihenfolge; Dies kann explizit mit dem Schlüsselwort ASC angegeben werden. Die Standard-Trennzeichen zwischen Werten in einer Gruppe ist, Komma ( „“). Um eine Trenn explizit anzugeben, verwenden SEPARATOR vom Stringliteral Wert folgt, der zwischen Gruppenwerte eingefügt werden soll. Zur Beseitigung insgesamt den Separator, geben Sie SEPARATOR '' .
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
oder
mysql> SELECT student_name,
-> GROUP_CONCAT(DISTINCT test_score
-> ORDER BY test_score DESC SEPARATOR ' ')
-> FROM student
-> GROUP BY student_name;
Große Antworten. Ich hatte auch ein Problem mit NULLS und schaffte es zu lösen, indem ein COALESCE innerhalb des GROUP_CONCAT einschließlich. Beispiel wie folgt:
SELECT id, GROUP_CONCAT(COALESCE(string,'') SEPARATOR ' ')
FROM table
GROUP BY id;
Hope, das hilft jemand anderes