SUM/CONCAT für Stringwerte
am 19.03.2006 16:24:18 von Bernd MuentHallo 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