McGizmo
Enthusiast
Hoi.
Ich bin in SQL zwar kein gänzlich unbeschriebenes Blatt aber nicht wirklich ein Crack. Nein, ziemlich weit entfernt fürchte ich ...
... anyways. Meint ihr, mit SQL ist eine Abfrage möglich, die folgendes macht (mal in Prosa umschrieben):
"Zeige alle verschiedenen x Zeichen langen Präfixe in einer Spalte einer Relation". Um das zu verdeutlichen seien mal folgende Einträge in einer Relation enthalten (nur 1 Attribut, VARCHAR):
1: //10.1.0.1/pfad/1
2: //10.1.0.1/pfad/2
3: //10.2.0.1/pfad/1
Das Statement sollte mit x = 6 als Resultat dann folgendes liefern:
1: //10.1
2: //10.2
Der Hintergrund ist recht einfach. Ich muss (geht nicht anders) aus einer Liste von Strings einen Verzeichnisbaum aufbauen. Wenn ich nun aber den -kompletten- Baum auf einmal aufbauen lasse, dann dauert das eine ganze Weile - es handelt sich um eine Tabelle mit später mehreren Millionen Einträgen. Um das zu reduzieren soll der Baum dynamisch beim Markieren der Knoten befüllt werden. Dafür brauche ich nun aber die "Basisknoten", also eben jene Präfixe. Und die hätte ich gerne rausgesucht.
Wenn die Anfrage ein paar Sekunden dauert macht das nix, schneller als der Programmablauf (das Befüllen des Baumes) wird's ja hoffentlich sein als Prefix-Match, das sollt ja mehr oder weniger flott machbar sein.
Ich bedanke mich ganz herzlich im Voraus!
Gizzle
PS Eine Select * Anfrage und das dann in der Anwendung durchrattern zu lassen habe ich mal angedacht. Würde womöglich auch Zeit sparen, aber direkt auf der Datenbank (falls es denn überhaupt irgendwie geht) wäre sicher optimal ...
Ich bin in SQL zwar kein gänzlich unbeschriebenes Blatt aber nicht wirklich ein Crack. Nein, ziemlich weit entfernt fürchte ich ...
... anyways. Meint ihr, mit SQL ist eine Abfrage möglich, die folgendes macht (mal in Prosa umschrieben):
"Zeige alle verschiedenen x Zeichen langen Präfixe in einer Spalte einer Relation". Um das zu verdeutlichen seien mal folgende Einträge in einer Relation enthalten (nur 1 Attribut, VARCHAR):
1: //10.1.0.1/pfad/1
2: //10.1.0.1/pfad/2
3: //10.2.0.1/pfad/1
Das Statement sollte mit x = 6 als Resultat dann folgendes liefern:
1: //10.1
2: //10.2
Der Hintergrund ist recht einfach. Ich muss (geht nicht anders) aus einer Liste von Strings einen Verzeichnisbaum aufbauen. Wenn ich nun aber den -kompletten- Baum auf einmal aufbauen lasse, dann dauert das eine ganze Weile - es handelt sich um eine Tabelle mit später mehreren Millionen Einträgen. Um das zu reduzieren soll der Baum dynamisch beim Markieren der Knoten befüllt werden. Dafür brauche ich nun aber die "Basisknoten", also eben jene Präfixe. Und die hätte ich gerne rausgesucht.
Wenn die Anfrage ein paar Sekunden dauert macht das nix, schneller als der Programmablauf (das Befüllen des Baumes) wird's ja hoffentlich sein als Prefix-Match, das sollt ja mehr oder weniger flott machbar sein.
Ich bedanke mich ganz herzlich im Voraus!
Gizzle
PS Eine Select * Anfrage und das dann in der Anwendung durchrattern zu lassen habe ich mal angedacht. Würde womöglich auch Zeit sparen, aber direkt auf der Datenbank (falls es denn überhaupt irgendwie geht) wäre sicher optimal ...
Zuletzt bearbeitet: