![]() |
"Intelligente" Suche in Datenbank
Hallo,
meine Frage kann ich am Besten an einem Beispiel erkären: Ich habe 2 Datenbanken, in der ersten ist in einem Feld z.B der String "Arielle" enthalten. In der 2. Datenbank steht an einer Stelle "Arielle 2" und an einer weiteren Stelle "Arielle, die kleine Meerjungfrau". Würde ich jetzt nach dem Titel "Arielle" in der 2. Datenbank mit einem Select-Befehl(...where Titel like 'Arielle%') suchen, würde ich "Arielle 2" finden, weil dieser Titel als erstes in der 2. DB vorkommt. Finden möchte ich aber "Arielle, die kleine Meerjungfrau". Nun könnte ich ja beim ersten Fund nachgucken, ob in der ersten Fundstelle eine 2 vorkommt und dann weitersuchen. Aber wie könnte ich das Weitersuchen bewerkstelligen? Der nachfolgende Select-Befehl müsste sich ja nur auf den Rest, also auf alle Datensätze nach der ersten Fundstelle beziehen. Geht das überhaupt oder muss man an sowas ganz anders rangehen? Gruß Gambit P.S, es handelt sich um eine MySQL Datenbank |
Re: "Intelligente" Suche in Datenbank
Hallo,
Zitat:
SQL-Code:
sowohl den Record "Arielle 2" als auch den Record "Arielle, die kleine Meerjungfrau" auslesen, nämlich halt alle Records bei denen der Titel mit "Arielle" anfängt. Von daher verstehe ich das "Weitersuchen" nicht.
/* Kommentar */
select Titel from DatenBank2 where Titel like 'Arielle%' Vielleicht kannst Du ein bisschen näher beschreiben, was genau Du machen willst ? MfG Lutz PS.: Könnte man bei "SQL-Quotes" nicht das --#1--> rausnehmen. Beim Lesen übersieht man oft die erste Zeile. |
Re: "Intelligente" Suche in Datenbank
Ja klar, stimmt, er findet natürlich beide...
Also ich möchte weitere Informationen zu dem Titel, die nur in der 2. Datenbank verfügbar sind, dem Titel aus der ersten Datenbank hinzufügen. Dazu würde ich in diesem beschriebenen Fall die Informationen zu "Arielle, die kleine Meerjungfrau" benötigen. Und da weiß ich nicht so recht, wie ich da ran gehen sollte. Wie gesagt, die 2 aus "Arielle 2" würde mir als Kriterium reichen, um diesen Datensatz als Imformationslieferant auszuschließen. Gruß Gambit |
Re: "Intelligente" Suche in Datenbank
Vielleicht kannst Du kurz beschreiben, wie Deine Dantebank 1 und Datenbank 2 aufgebaut sind und was genau sie enthalten (z.B.: Dantenbank 1 = Liste aller Filme, Datenbank 2 = Zusatzinfos zu den Filmen).
Kannst Du die Strukturen der Datenbänke verändern oder sind die fest vorgegeben ? Auf den ersten Blick sieht das hier für mich nach einem "Master-Detail"-schema aus. Sollte das so sein, wäre es auf jeden Fall ratsam, die Relation zwischen Datenbank1 und Datenbank2 durch einen direkten Vergleich Datenbank1.PrimaryKey=Datenbank2.ForeignKey herzustellen. Selbst wenn Du eine 'Not-Lösung' für "Arielle" findest, funktioniert diese vielleicht nicht mehr für andere Fälle (z.B.: "Star Wars" und "Star Wars: Episode II Attack of the Clones"). MfG Lutz |
Re: "Intelligente" Suche in Datenbank
Zitat:
Zitat:
Zitat:
Zitat:
Aber mal abgesehen davon, wie würde ich denn in dem erst genannten Beispiel Arielle, die kleine Seejungfrau zu packen kriegen, wenn ich mit der Notlösung erstmal zufrieden wäre? Gruß Gambit |
Re: "Intelligente" Suche in Datenbank
Also wenn ich den Thread richtig gelesen hab ist das deine lösung.
SQL-Code:
SELECT *
FROM tab1 JOIN tab2 ON tab1.nr=tab2.tab1nr Du musst nur in tab2.tab1nr die nr des PrimaryIndexses (tab1.nr) reinschreiben um so eine Verknüpfung herzustellen. Anders geht das wohl nicht zumin. nicht vernüftig und schnell. |
Re: "Intelligente" Suche in Datenbank
Aber dafür müsste ich erstmal die Schlüssel haben. Angenommen ich würde in Tabelle 1 jedem Titel eine Nummer als Primärschlüssel geben, dann müsste ich den Sekundärschlüssel in Tabelle 2 ja praktisch manuell zuordnen(wenns automatisch ginge, hätte ich die Lösung), da wär ich Opa bis ich damit fertig wäre.
Gambit |
Re: "Intelligente" Suche in Datenbank
Zitat:
|
Re: "Intelligente" Suche in Datenbank
Ich stells nochmal anders da:
angenommen ich bekomme bei der Suche für einen Titel ein RecordSet von 3 Datensätzen. Dann möchte ich die 3 Datensätze nochmal genauer durchparsen können. Sowas könnte man vielleicht mit einer View machen, das wird aber meines Wissens von MySql noch nicht unterstützt. Mir wäre ja schon geholfen, wenn es mir gelingen würde, die gefundenen Datensätze(im o.g Bsp. also 3) in ein String-Array oder sowas zu speichern, sodass ich sie mir nochmal einzeln vornehmen könnte. Das es keine 100%-tige Lösung gibt ist mir schon klar. Gruß Gambit |
Re: "Intelligente" Suche in Datenbank
Ja und wo liegt da das problem wenn du dein SQL Statement nimmst hast du doch mehrere einträge du musst doch nur noch anzeigen. :?:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz