SUM/CONCAT für Stringwerte

SUM/CONCAT für Stringwerte

am 19.03.2006 16:24:18 von Bernd Muent

Hallo zusammen,
wenn ich hätte

Tabelle test:
name wert
aaa 1
aaa 2
aaa 3
bbb 1

Dann würde "SELECT name,SUM(wert) as summe FROM test GROUP BY name" ergeben:
name summe
aaa 6
bbb 1

Schön, jetzt hätte ich sowas gerne für Strings, die zusammengefügt
werden sollen

Tabelle test
name lang description
aaa de deutsch
aaa en english
aaa fr francais
bbb de deutsch

Daraus hätte ich gerne:
name description
aaa [de]deutsch|[en]english|[fr]francais
bbb [de]deutsch

ich habe als erstem Näherungsversuch (unter Nichtbeachtung des "[de]"
usw. aus der lang-Spalte mal folgendes versucht:
"SELECT name,CONCAT(description) as description FROM test GROUP BY name"
Ergibt
name description
aaa deutsch
bbb deutsch

Sprich, die Strings werden nicht aneinandergefügt, sodern es steht nur
der erste drin.

Eine PHP-Lösung weiss ich zwar, finde ich aber nicht so elegant:
$result=mysql_query("SELECT name,description FROM test order by name");
while (list($name,$lang,$description)=mysql_fetch_row($result) {
if (isset($desc["name"])) $desc["name"]).="|";
$desc["name"].="[$lang]$description;
}

Danke schön für Ideen, wie ich das mit "reinem" SQL lösen könnte,
Bernd