Archiv verlassen und diese Seite im Standarddesign anzeigen : Increment eines Feldes
eagle0899
10-07-2007, 22:19
Hallo
Ich möchte mein Problem an einem Beispiel erläutern.
Ich habe folgende Tabelle:
create table worte ("Name" varchar(20), "Anzahl" INT);
Die Tabelle ist am Anfang leer. Nun möchte ich, sagen wir mal von einem dicken E-Book, alle vorkommenden Worte in die Tabelle eintragen und bei wiederholten Auftreten zählen.
In Perl mit DB_File ist dies ein Einzeiler:
$worte{$wort}++;
Gibt es eine elegante Möglichkeit, so etwas mit SQL (z.B. mysql) zu realisieren?
Gruß Bernd
mwanaheri
11-07-2007, 07:43
Die schnellste Möglichkeit dürfte sein, eine Tabelle mit der Spalte wort zu erstellen, da alles reinzupacken und dann auf einen View zuzugreifen, der sich aus 'select wort,count(wort) from tabelle group by wort' ergibt. Schnell allerdings nur in der implementierung.
update worte set Anzahl=Anzahl+1 where Name='<wort>'
tschloss
11-07-2007, 10:02
update worte set anzahl=anzahl+1 where name="dieseswort";
tschloss
11-07-2007, 11:17
hihi, erster :p
Blödes Telefon :D
eagle0899
11-07-2007, 15:08
update worte set Anzahl=Anzahl+1 where Name='<wort>'
Und es läuft super. Danke!
Allerdings nur, wenn '<wort>' bereits vorhanden ist. So muß erst abgefragt werden, ob das Wort bereits vorhanden. Wenn nicht, muß erst ein insert ausgeführt werden.
In Perl ist das alles inklusive.
Gruß Bernd
Und es läuft super. Danke!
Allerdings nur, wenn '<wort>' bereits vorhanden ist. So muß erst abgefragt werden, ob das Wort bereits vorhanden. Wenn nicht, muß erst ein insert ausgeführt werden.
kennt mysql MERGE?
-j
mwanaheri
12-07-2007, 07:56
laut en.wkipedia.org heißt das bei MySQL 'replace':
http://dev.mysql.com/doc/refman/5.1/en/replace.html
dort wird allerdings eine andere Syntax empfohlen:
http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html
Das ist wohl das, was hier gebraucht ist.
eagle0899
13-07-2007, 11:43
laut en.wkipedia.org heißt das bei MySQL 'replace':
http://dev.mysql.com/doc/refman/5.1/en/replace.html
dort wird allerdings eine andere Syntax empfohlen:
http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html
Das ist wohl das, was hier gebraucht ist.
Genau das ist das, wonach ich gesucht habe. Aber leider nur bei mysql möglich.
Nochmals Danke
Bernd
mwanaheri
13-07-2007, 13:30
für andere Datenbanken ist (denke ich) MERGE zuständig (vgl. Beitrag von Jasper) Ich hatte nur aus irgendeinem Grund angenommen, dass es sich um MySQL handelt.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.