verschachtelter Query mit Wildcard
Ajaxa
- datenbank
Guten Abend,
habe folgende Beispiel Tabelle, die aus dem einzigen Feld bzw. der einzigen Spalte (varchar) "info" besteht.
Die Daten sehen einfach nur so aus:
abcde~fgh~ijk~lmn
abcde~fgh
opqr~stu~wxyz
Nun scheitere ich schon ziemlich lange daran, folgenden in Worten formulierten Select-Query zu finden.
Die Rückgabe soll aus den Zeilen bestehen, deren Inhalt bis zur zweiten Welle noch nicht vorhanden ist.
=> in diesem Fall sollte also nur opqr~stu~wxyz das Ergebnis sein, denn abcde~fgh geht nur bis zur 2. Welle und für abcde~fgh~ijk~lmn existiert ein bis zur 2. Welle übereinstimmender Eintrag, nämlich abcde~fgh.
Gibt es einen einigermaßen einfachen Weg, das hinzubekommen? Denn so lange ich bisher auch rumtüftelte, komme ich einfach nicht voran :(
Hoffe ihr kennt das und könnt mein Problem nachvollziehen.
Danke!
Also deiner Datenbank kannst du diese Unterscheidung wohl nicht beibringen. In so einem Fall musst du leider alle Datensätze herausholen und auswerten, dann per Script die herausfiltern, die du benötigst.
Ich weiß nicht, was genau du überhaupt damit vorhast, aber mach es irgendwie anders. Immer ALLE Datensätze hrauszuholen könnte auf längere Sicht die Scriptlaufzeit ziemlich in die Höhe schießen lassen und würde nur unnötig Traffic verursachen.
Hi,
dachte, das könnte mit einem LIKE und einem RegExp funktionieren...
Hello,
dachte, das könnte mit einem LIKE und einem RegExp funktionieren...
es geht wahrscheinlich sogar etwas direkter, aber es wird auf jeden Fall ein äußerst brutales und gefräßiges Query, weil sämtliche Indizes außer Gefecht gesetzt werden. Es könnte in der Tat sein, dass etwas Intelligenz in ein Skript gesteckt bessere Ergebnisse bringen als die plumpe Mengenarithmetik einer Datenbank.
Im Prinzip suchst du
MfG
Rouven
yo,
welches dbms und welche version. des weiteren habe ich die fachliche logik noch nicht ganz verstanden, welche datensatz nun ausgesucht werden soll.
die abfrage selbst erscheint mir nicht all zu schwierig zu sein, stichwort wäre die funktion INSTRING(), hängt aber wie gesagt von deinem dbms und version ab.
Ilja
Hallo
habe folgende Beispiel Tabelle, die aus dem einzigen Feld bzw. der einzigen Spalte (varchar) "info" besteht.
Die Daten sehen einfach nur so aus:
abcde~fgh~ijk~lmn
abcde~fgh
opqr~stu~wxyz
Die Rückgabe soll aus den Zeilen bestehen, deren Inhalt bis zur zweiten Welle noch nicht vorhanden ist.
das hört sich nach dem gleichen miserablen Tabellendesign an, das auch Anna hat.
Verbessere das Datenbankdesign und die Probleme lösen sich von selbst.
Freundliche Grüße
Vinzenz