Ich möchte in meiner Datenbank über eine Anfrage einen Datensatz an anhand diesen Strings finden: "ärzte best of westerland". Die Datenbank besitzt die Spalten "Künstler", "Album", "Titel", ...
Das Problem ist, das ich nicht eine Spalte nach dem String fragen kann. Der Datensatz muss in irgend einer Spalte "ärzte" in einer anderen, oder der gleichen "best" enthalten und so weiter.
Wie formuliere ich dafür eine korrekte SQL anfrage? Hier mein Ansatz:
[highlight="Java"]
public Vector<MP3File> getSongs(String query) {
try {
query = "%" + query.replaceAll(" ", "%") + "%";
System.out.println(query);
Vector<MP3File> songs = new Vector<MP3File>();
stmtSearchSong.clearParameters();
stmtSearchSong.setString(1, query);
stmtSearchSong.setString(2, query);
stmtSearchSong.setString(3, query);
stmtSearchSong.execute();
ResultSet results = stmtSearchSong.getResultSet();
while (results.next()) {
MP3File newSong = new MP3File(results.getString("ARTIST"),
results.getString("ALBUM"),
results.getString("TRACK"),
results.getString("TITLE"),
results.getString("DATE"),
results.getString("PATH"));
songs.add(newSong);
}
return songs;
}
catch (SQLException e) {
e.printStackTrace();
}
return null;
}
private final String strSearchSong =
"SELECT * FROM MEDIA " +
"WHERE UPPER(ALBUM) LIKE UPPER(?) " +
"OR UPPER(ARTIST) LIKE UPPER(?) " +
"OR UPPER(TITLE) LIKE UPPER(?) ";
[/highlight]
Das Problem ist, das ich nicht eine Spalte nach dem String fragen kann. Der Datensatz muss in irgend einer Spalte "ärzte" in einer anderen, oder der gleichen "best" enthalten und so weiter.
Wie formuliere ich dafür eine korrekte SQL anfrage? Hier mein Ansatz:
[highlight="Java"]
public Vector<MP3File> getSongs(String query) {
try {
query = "%" + query.replaceAll(" ", "%") + "%";
System.out.println(query);
Vector<MP3File> songs = new Vector<MP3File>();
stmtSearchSong.clearParameters();
stmtSearchSong.setString(1, query);
stmtSearchSong.setString(2, query);
stmtSearchSong.setString(3, query);
stmtSearchSong.execute();
ResultSet results = stmtSearchSong.getResultSet();
while (results.next()) {
MP3File newSong = new MP3File(results.getString("ARTIST"),
results.getString("ALBUM"),
results.getString("TRACK"),
results.getString("TITLE"),
results.getString("DATE"),
results.getString("PATH"));
songs.add(newSong);
}
return songs;
}
catch (SQLException e) {
e.printStackTrace();
}
return null;
}
private final String strSearchSong =
"SELECT * FROM MEDIA " +
"WHERE UPPER(ALBUM) LIKE UPPER(?) " +
"OR UPPER(ARTIST) LIKE UPPER(?) " +
"OR UPPER(TITLE) LIKE UPPER(?) ";
[/highlight]