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
Re: SUM/CONCAT für Stringwerte
am 19.03.2006 17:30:35 von Niels Braczek
Bernd Muent schrieb:
> Danke schön für Ideen, wie ich das mit "reinem" SQL lösen könnte,
> Bernd
de.comp.datenbanken.* ist gleich nebenan.
MfG
Niels
--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
------------------------------------------------------------ ----
Re: SUM/CONCAT fürStringwerte
am 19.03.2006 17:42:57 von Sven Paulus
In de.comp.datenbanken.mysql Bernd Muent wrote:
> Schön, jetzt hätte ich sowas gerne für Strings, die zusammengefü=
gt=20
> 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
SELECT name,
GROUP_CONCAT(CONCAT('[',lang,']',description) SEPARATOR '|') result
FROM mytable GROUP BY name
Re: SUM/CONCAT fürStringwerte
am 19.03.2006 17:42:57 von Sven Paulus
In de.comp.datenbanken.mysql Bernd Muent wrote:
> Schön, jetzt hätte ich sowas gerne für Strings, die zusammengefü=
gt=20
> 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
SELECT name,
GROUP_CONCAT(CONCAT('[',lang,']',description) SEPARATOR '|') result
FROM mytable GROUP BY name
Re: SUM/CONCAT für Stringwerte
am 19.03.2006 18:25:37 von Bernd Muent
Sven Paulus schrieb:
> In de.comp.datenbanken.mysql Bernd Muent wrote:
>> 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
>
> SELECT name,
> GROUP_CONCAT(CONCAT('[',lang,']',description) SEPARATOR '|') result
> FROM mytable GROUP BY name
Danke schön. Genau dieses "GROUP_CONCAT" suchte ich.
Gruß, Bernd
Re: SUM/CONCAT für Stringwerte
am 19.03.2006 18:25:37 von Bernd Muent
Sven Paulus schrieb:
> In de.comp.datenbanken.mysql Bernd Muent wrote:
>> 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
>
> SELECT name,
> GROUP_CONCAT(CONCAT('[',lang,']',description) SEPARATOR '|') result
> FROM mytable GROUP BY name
Danke schön. Genau dieses "GROUP_CONCAT" suchte ich.
Gruß, Bernd