Suchfunktion mit Java in Mysql Datenbank

Ghorki

Aktives Mitglied
Guten Tag,

in meiner Webanwenung kann ich verschiedene Formulare ausfüllen, eingegebene Daten werden dann in meiner Mysql Datenbank gespeichert.

Nun möchte ich eine Suchfunktion mit Java implementieren, die meine Datenbank nach verschiedenen Suchbegriffen, die der User eingeben kann, durchsucht, aber ich habe momentan kein Plan wie ich da anfangen soll.

Ich hoffe Ihr könnt mir eine kleine Starthilfe verschaffen.
Danke schonmal,

MFG
Ghorki
 
Danke, ich habs mir wohl ein bischen umständlicher vorgestellt 🙂.

Ich habe eine Datenbank ("User") mit 2 Tabellen "Anbieter" und "Sucher" die einfache Daten wie Name, Straße ... enthalten.

Nun möchte ich dass, wenn ein Suchbegriff mit einem Wort in einer Spalte (egal welche Tabelle) übereinstimmt, alle Daten einer Spalte ausgeben werden.
 
wenn ein Suchbegriff mit einem Wort in einer Spalte (egal welche Tabelle) übereinstimmt
ja man kann jetzt natürlich die beiden entsprechenden Abfragen definieren,
where NAME like ('%suchbegriff%') OR VORNAME like ('%suchbegriff%') OR Adresse like ('%suchbegriff%') ...
ist einwenig umständlich. Auf SQL Ebene gibt es leider aber keine Alternative... soweit ich weit weiß.

Natürlich gibt es noch anderes Dinge wie Such Engines die einen eigenen Suchindex aufgauen und mit denen man dann suchen kann. Das ist viel viel proffesioneller, performanter aber halt auch aufwändiger... Stichwort: Lucene
 
Mhn wobei aufändiger der Falsche Begriff ist. Bei 3 Tabellen mit 5 Spalten würd ich kein Lucen einesetzen. Bei 50 Tabellen mit 10 Spalten und Millionen von Einträgen kannst die SQL Version vergessen...
 
Ok danke,
ich werde mich noch ein bischen mit den Mysql Abfragen beschäftigen,
wie du schon sagtest ist mein Projekt nicht so groß, hab nur 2 Tabellen mit jeweils 10 Spalten 😉.

Ich werde mich Morgen nochmal melden und meine Erfahung und Fragen, falls es noch welche gibt (hoffe ja nicht ;D) , posten.
 
Am einfachsten erscheint mir, wenn du entweder schon im Programm ne Liste mit "schlagworten" hast, also deine Spaltennamen, die du "nur" abgleichen musst und bei übereinstimmung einen entsprechenden select füllen, oder aber du machst das ganze etwas umfangreicher, dafür zukunftssicherer indem du erstmal die spaltennamen der tabellen abfragst, und dann wie oben beschrieben weitermachst.
 
Ok ich mache es jetzt so wie ARadauer es beschrieben hat, da ich mich jetzt nur auf 3 Felder beschränkt habe.

"select * from "Tabelle" where "1.Feld" like ('%"+gesucht.getSuche()+"%')) OR " +
" "2.Feld" like ('%"+gesucht.getSuche()+"%') OR " +
" "3.Feld" like ('%"+gesucht.getSuche()+"%')OR ";

Falls ein Suchbegriff stimmt, gebe ich dann die ganze Spalte der ID aus.

Danke für eure Hilfe 😉
War einfacher als ich gedacht habe.
 

Zurück
Oben