SQL Abfrage ...

McGizmo

Enthusiast
Thread Starter
Mitglied seit
05.02.2004
Beiträge
5.735
Ort
Großherzogtum Baden
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 ...
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
also de facto ein substr und danach groupieren?

select SUBSTR(foo, 0, 6) as bar FROM table GROUP BY bar
 
Ei ei, das klingt schon echt vielversprechend. Leider klappt's nur mäßig gut, denn ich erhalten lediglich leere Strings. Ich bin momentan noch bei MySQL, hat das evtl Probleme mit Substring?

Ich hatte das ganze jetzt auch in der Anwendung mal umgesetzt, ist auch recht flott. Auf der DB wäre aber nachwievor zu bevorzugen, sonst muss ich immer einmal die komplette DB (am Anfang braucht's ja select *) über's Netz ballern.


*e* Ah ich hab's, muss bei 1 anfangen. Karsten, du bist genial, besten Dank! In etwa so mach ich's in der Anwendung - kommer aber nicht drauf, das mal in SQL zu probieren. :wall:

Dank' Dir! :)
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh