PostgreSQL SELECT Statement

unavailable

Mitglied
Hey ho Freunde,

ich hab da wieder mal ein Problem.
In meinem Adressbuch gibt's nen JTextField was den String der bei .getText()
zurückkommt, an eine Methode schickt, die in der Datenbank alles herausfiltern soll, was zu dem
angegebenen Wort passt.

Wie muss ich da jetzt das SQL Statement aufbauen?

Mir fällt nur ein [c]SELECT * FROM database WHERE username = 'searchedFor' OR vorname='searchedFor'[/c].. Aber das ist nicht die sauberste Lösung und vorallem unperformant.
 

Joose

Top Contributor
die in der Datenbank alles herausfiltern soll, was zu dem
angegebenen Wort passt.

Mir fällt nur ein [c]SELECT * FROM database WHERE username = 'searchedFor' OR vorname='searchedFor'[/c].. Aber das ist nicht die sauberste Lösung und vorallem unperformant.

Warum musst du denn die ganze Datenbank (alle Tabellen und alle Spalten) durchsuchen?
Ich gehe mal davon aus das du ein Suchfeld hast das für dein ganzes Programm gilt und somit alles mögliche finden kann/soll. Eine allg globale Lösung die DB zu durchsuchen kenne ich nicht und kann es meiner Meinung nach auch nicht geben.

Das Problem liegt ja auch daran, was für Daten willst du zurückbekommen?
Jede Tabelle hat eine andere Struktur. Du müsstest min jede Tabelle einzeln durchgehen!
 

unavailable

Mitglied
Es gibt 3 Fenster:
- Ein Login für's allgemeine Programm
- Ein Login für das Adressbuch, um seine eigenen Daten einzutragen
- Das Adressbuch

Wenn man im Adressbuch ist, gibt es ein Suchfeld, welches die Datenbank (welche aus einer Tabelle besteht mit 8 Spalten) nach dem gesuchten Wort absuchen soll.
Die resultierenden Werte sollen in einem Vector (bzw. einer beliebigen Collection) gespeichert werden und an eine Methode gesendet werden, die daraus eine Tabelle baut, welche dem User angezeigt werden soll.

Nun möchte ich aber nicht alle 8 Spalten abfragen, ob das Wort existiert, weil ich mir sicher bin das da noch einige Spalten dazu kommen. D.h. Erweiterbarkeit ist schlecht umgesetzt.

Gibt es keine WHERE Bedingung, die mir ALLES zurückgibt, die mit dem gesuchten Wort zusammen passt?
Code:
SELECT * FROM users WHERE InhaltDerDatenbank LIKE %gesuchtesWort%
 

Joose

Top Contributor
Wenn man im Adressbuch ist, gibt es ein Suchfeld, welches die Datenbank (welche aus einer Tabelle besteht mit 8 Spalten) nach dem gesuchten Wort absuchen soll
.........
Nun möchte ich aber nicht alle 8 Spalten abfragen, ob das Wort existiert, weil ich mir sicher bin das da noch einige Spalten dazu kommen. D.h. Erweiterbarkeit ist schlecht umgesetzt.

Das stimmt natürlich das bei neuen Spalten viel zu ändern ist.

Gibt es keine WHERE Bedingung, die mir ALLES zurückgibt, die mit dem gesuchten Wort zusammen passt?
Code:
SELECT * FROM users WHERE InhaltDerDatenbank LIKE %gesuchtesWort%

Nein gibt es nicht. Aber du kannst dir die Metadaten der Tabelle abfragen. Dort bekommst du die Information zu den vorhadenen Spalten. Dann musst du nur noch dein
Code:
SELECT
dynamisch zusammenbauen.
 

DarXun

Aktives Mitglied
Ich wüsste auch keine andere Lösung als das dynamische erstellen der WHERE-Klausel.

Viel interessanter ist aber doch, wieso das überhaupt benötigt wird...
Wenn der Nutzer einen Suchbegriff eingibt, dann weiß er doch so halbwegs wonach er suchen möchte.
Wieso möchtest du dem Nutzer nicht direkt die Möglichkeit bieten seine Suche einzugrenzen? Also nicht nur ein Textfeld anbieten sondern eben mehrere?
Das ist weitaus performanter und der Nutzer wird es dir mit Sicherheit danken!
 

Wurstkopp

Bekanntes Mitglied
Man kann mit den Metadaten auch in SQL selbst Funktionen für soetwas realisieren. Hier beispielsweise eine Funktion die sowohl alle Tabellen als auch deren Spalten nach einem Wert durchsucht How to search a specific value in all tables (PostgreSQL)? - Stack Overflow (Antwort von Daniel Vérité)

Das könnte man dann im Prinzip so umstricken, dass nur bei einer Tabelle alle Spalten durchlaufen werden und ggf. Systemspalten wie Primärschlüssel unberücksichtigt bleiben. Dass das ganze aber richtig böse in die Performance gehen kann, sollte klar sein.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Select-Statement optimieren Datenbankprogrammierung 14
R Select Statement als temporärer Table Datenbankprogrammierung 7
R Derby/JavaDB Select Statement Where bedingung will nicht ganz! Datenbankprogrammierung 4
R Derby/JavaDB Select TOP Statement geht nicht Datenbankprogrammierung 3
F wie funktioniert if Statement in SELECT? Datenbankprogrammierung 2
J [Hibernate] Select Statement Datenbankprogrammierung 4
T Select Statement auf Relation Datenbankprogrammierung 3
J SELECT-Statement Datenbankprogrammierung 4
krgewb SELECT ohne IdClass-Annotation Datenbankprogrammierung 3
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
OnDemand Select * from bringt keine Rückgabe Datenbankprogrammierung 49
OnDemand Select vs Update ins blaue, was ist teurer? Datenbankprogrammierung 11
M JPA: select all mit unterschiedlichem Tablename Datenbankprogrammierung 2
A MySQL Select und Insert in Java Datenbankprogrammierung 15
J JPA: Wie sieht der select aus? Datenbankprogrammierung 2
D geänderte SELECT Abfragen Datenbankprogrammierung 15
N SQLite Hibernate und Aufruf von Funktion SELECT last_insert_rowid() Datenbankprogrammierung 2
T sqlite select Datenbankprogrammierung 12
D Oracle NullPointerException bei select mit Null Values Datenbankprogrammierung 5
F MySQL Was bedeuten die Einzelnen Zeichen in Select Querrys? Datenbankprogrammierung 1
J SQL SELECT mit einem Array Datenbankprogrammierung 1
J SELECT Abfrage/Suche Datenbankprogrammierung 4
E Kann man in einer if-Bedingung auch SELECT-Statements überprüfen? Datenbankprogrammierung 23
M SQL-Exception trotz funktionierendem SELECT Datenbankprogrammierung 4
L Select Anweisung wird falsch interpretiert Datenbankprogrammierung 3
C HSQLDB Platzhalter in SELECT Datenbankprogrammierung 6
I SELECT bei Datenbankverbindung Datenbankprogrammierung 6
C MySQL JPA - namedQuery (SELECT) -getResultList() - liefert falsches Ergebnis Datenbankprogrammierung 1
S select: alle ergebnisse ermitteln Datenbankprogrammierung 5
G SQLite SQLite Select für View vereinfachen/optimieren Datenbankprogrammierung 4
C SQL-Statement SELECT über 3 Tabellen Datenbankprogrammierung 5
H HSQLDB insert .... values("test1",select test2 from foo) Datenbankprogrammierung 2
D JDBC insert mit select abfrage Datenbankprogrammierung 5
W SELECT oder Programm-Logik Datenbankprogrammierung 10
J Hibernate Select auf Parameterliste Datenbankprogrammierung 3
T MySQL Dynamisch Suchen Select Datenbankprogrammierung 4
D ArrayList in Select Datenbankprogrammierung 12
N Select mit join Datenbankprogrammierung 3
F Oracle select sum() join select sum() Datenbankprogrammierung 9
B SELECT ja - INSERT nein (MySQL) Datenbankprogrammierung 3
R Oracle Performance bei SELECT mit vielen Reihen Datenbankprogrammierung 5
T MySQL Db select * und Insert schlagen fehl Datenbankprogrammierung 2
M Variable in SQL SELECT * FROM ... WHERE mithilfe von PreparedStatement benutzen? Datenbankprogrammierung 28
R Derby/JavaDB Möglichkeit von einem Random Select! Datenbankprogrammierung 6
B Mehrfachschachtelung SELECT Datenbankprogrammierung 2
T MySQL Select: Zusammenfassen von Daten und bilden von Durchschnitt? Datenbankprogrammierung 4
GianaSisters MySQL Datenbank Select error Datenbankprogrammierung 5
S MySQL Problem mit SELECT bzw encoding Datenbankprogrammierung 4
B HSQLDB Probleme mit Select...Where Abfrage Datenbankprogrammierung 16
A SQLite SELECT von ungleichen Spaltenpaaren Datenbankprogrammierung 10
Eldorado MySQL SELECT mit GROUP BY und INNER JOIN Datenbankprogrammierung 2
M Hibernate JPQL SELECT optional? Datenbankprogrammierung 2
C Datenbank-Abfrage, if im Select Datenbankprogrammierung 9
G Aufruf von SELECT INTO Datenbankprogrammierung 8
B H2 PreparedStatement SELECT * FROM ? Datenbankprogrammierung 4
X Select Query auf Substring Datenbankprogrammierung 2
S Select eines bestimmten Datensatzes Datenbankprogrammierung 4
M Select * from mydaten where ... Datenbankprogrammierung 4
T Unerwartete Datenbankausgabe bei "select now()" (es wird ein .0 angehängt) Datenbankprogrammierung 5
M Probleme bei Select in Schleife Datenbankprogrammierung 7
G SELECT liefert leere Zeilen Datenbankprogrammierung 32
M SELECT longtext -> als String behandeln Datenbankprogrammierung 6
H Select in einem Select Datenbankprogrammierung 7
G Select- Abfrage Datenbankprogrammierung 19
S Insert mit Select Datenbankprogrammierung 6
G MSSQL Server SELECT Abfrage funktioniert nicht Datenbankprogrammierung 4
R SELECT aus hsqldb mit Parameter Datenbankprogrammierung 2
H Beim insert bekomme ich den Fehler missing select keyword Datenbankprogrammierung 2
A Problem mit einem Select-Befehl Datenbankprogrammierung 5
E Neues select auf ein vorhandenes Resultset Datenbankprogrammierung 11
A SELECT-Anweisung liefert keine Datensätze zurück Datenbankprogrammierung 9
S Select über mehrere Datenbanksysteme Datenbankprogrammierung 14
P SELECT Datenbankprogrammierung 20
T select Abfrage in Java Integer speichern ? Datenbankprogrammierung 2
B fehler bei select befehl Datenbankprogrammierung 5
S Select von bis in DB2 Datenbankprogrammierung 8
S Select mit PreparedStatement Datenbankprogrammierung 2
E Ein If und ein SELECT in Oracle? Datenbankprogrammierung 2
S PostgreSQL SELECT/UPDATE etc. Datenbankprogrammierung 4
4 Probleme mit Select abfrage Datenbankprogrammierung 4
G Fehler in der select-Abfrage Datenbankprogrammierung 3
N SELECT: Datensatz sperren Datenbankprogrammierung 6
isowiz SELECT SUM() Ergebnis in Java abfragen Datenbankprogrammierung 6
T LIMIT In SELECT Anweisung Datenbankprogrammierung 4
R Select und Insert in Schleife - Problem mit ResultSet Datenbankprogrammierung 2
G SELECT Name= " " verhindern Datenbankprogrammierung 5
G Syntax für Select - Abfrage mit Variablen Datenbankprogrammierung 39
R Select auf der Konsole ausgeben Datenbankprogrammierung 2
D brauche mal kurz hilfe bei einem select-stmt Datenbankprogrammierung 6
G Select-Abfragen sind sehr langsam Datenbankprogrammierung 7
D HSQLSB SELECT Datenbankprogrammierung 9
D Statement läuft ewig Datenbankprogrammierung 14
T SQL-Statement Datenbank nach SQL Statement schließen? Datenbankprogrammierung 7
Kotelettklopfer SQLite Verhindern von doppelter Statement Ausführung Datenbankprogrammierung 25
L SQL-Statement SQL Statement doppelte Einträge finden Datenbankprogrammierung 9
C MySQL SQL Statement wir nicht ausgeführt Datenbankprogrammierung 11
G Datenbank Statement Datenbankprogrammierung 22
Dimax Erstellen ResultSet und Statement Datenbankprogrammierung 30
B MySQL Umkreissuche - brauche Hilfe bei SQL Statement Datenbankprogrammierung 12
M CSV Import - Dynamisches SQL Statement Datenbankprogrammierung 15

Ähnliche Java Themen


Oben