phpbar.de logo

Mailinglisten-Archive

rekursive Suche in =?iso-8859-1?Q?datens=E4tzen?=

rekursive Suche in datensätzen

Franziska Wittwer mysql_(at)_lists.phpcenter.de
Thu, 28 Jun 2001 11:05:25 +0200


Hi Martin

Ich bin in dieser Mailingliste neu und kenne mich mit den genauen
Möglichkeiten von MySql noch nicht aus. 

Aufgrund meiner Erfahrungen mit anderen Datenbanken ist die schnellste
Suche für dein Problem eine über den UNION-Operator. 

Mit diesem kannst du Selektionen "zusammenhängen", d.h. er ersetzt dir
in vielen Fällen die langsame OR-Bedingung oder diejenige über temporäre
Tabellen.

Oder nochmals anders gesagt: UNION verknüpft dir verschiedene
Teilmengen, die du nach der letzten Selektion sortieren kannst.
Bedingung ist, dass jeder Select gleich viele Felder vom gleichen Typ
ergibt.

Hoffentlich alles klar?

Franziska
> 
> Hi,
> Was ist dann schneller und geschickter, die einzelnen Daten in eine
> temporäre Datenbank ablegen und diese dann wieder
> zur Suche verwenden, oder die Daten in der Anwendung zu halten. Ich hatte
> bisher noch keine Erfahrung mit
> temporären Tabellen. Ein erster Veruch, eine Scuhe über 1000 verknüpfte
> Datensätze hat eine Ewigkeit gebraucht,
> wobei das Ergebnis auch nicht zufriedenstellend war. Hat vielleicht jemand
> ein Beispiel oder eine Idee ???
> 
> Gruss Martin
> At 09:25 27.06.01 +0200, you wrote:
> >Hallo Martin,
> >
> > > From: Martin Heller [mailto:heller.martin_(at)_gmx.de]
> > > Subject: rekursive Suche in datensätzen
> >
> > > [...]
> > >
> > > Nun möchte ich alle Komponenten, die mit diesem Tape zu tun haben
> > > ausgeworfen haben.
> > >
> > > Nun die Frage, wie konstruiert man so einen Select am geschicktesten oder
> > > ist mein DB Anstatz
> > > für relationale Datenbanken zu komplex ???
> >
> >Grundsätzlich ja. Ohne Deine Struktur jetzt bis ins Detail nachvollzogen zu
> >haben, muß grundsätzlich gesagt sein, daß der SQL-Syntax rekursive Abfragen
> >nicht darstellen kann. Bei anderen Datenbanken ist es zwar möglich eine
> >gewisse Schachtelungstiefe mittels verschachtelter SQL-Befehle abzubilden,
> >aber das ist ja noch keine Rekursion.
> >
> >Das heißt es geht nur über die Anwendungsprogrammierung. In anderen DB gibt
> >es hier noch die Möglichkeit das Ganze in einer Stored Procedure zu
> >"verstecken". Bei mySql programmiert man es direkt rekursiv in der
> >Anwendung (also in perl, php, c/c++, java, delphi etc.).
> >
> >Wenn man das Ergebnis später aus einer Tabelle abfragen möchte, ist es ggf.
> >sinnvoll die Zwischenergebnisse und das Endergebnis in einer/mehreren
> >temporären Tabelle/n abzulegen (siehe Handbuch).
> >
> >Gruss, Michael Donning
> >
> >---
> >!!NEU!!
> >Fragen und Antworten zu MySQL und dieser Liste unter
> >-->>  http://www.4t2.com/mysql
> 
> ---
> !!NEU!!
> Fragen und Antworten zu MySQL und dieser Liste unter
> -->>  http://www.4t2.com/mysql

---
!!NEU!!
Fragen und Antworten zu MySQL und dieser Liste unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive