Ich verwende vorbereitete Anweisungen, um MySQL-Datenbankabfragen auszuführen. Und ich möchte eine Suchfunktion implementieren, die auf einer Art Schlüsselwort basiert.
Dafür muss ich ein LIKE
Schlüsselwort verwenden, so viel ich weiß. Und ich habe auch schon vorbereitete Anweisungen verwendet, aber ich weiß nicht, wie ich sie verwenden soll, LIKE
weil aus dem folgenden Code, wo würde ich die hinzufügen 'keyword%'
?
Kann ich es direkt im pstmt.setString(1, notes)
as (1, notes+"%")
oder so verwenden. Ich sehe viele Beiträge dazu im Web, aber nirgendwo eine gute Antwort.
PreparedStatement pstmt = con.prepareStatement(
"SELECT * FROM analysis WHERE notes like ?");
pstmt.setString(1, notes);
ResultSet rs = pstmt.executeQuery();
... LIKE '%' || ? || '%'
oder ähnlich - aber das ist viel weniger flexibel.WHERE UPPER(?) LIKE UPPER(?)
werdenpstmt.setString(2, "%" + notes + "%")
'%' || ? || '%'
war es doch besser, wie im 1. Kommentar erwähnt? Ich habe momentan keine Gelegenheit zu experimentieren.Code es so:
Stellen Sie sicher, dass Sie die unten stehenden Anführungszeichen NICHT einfügen, da sie eine Ausnahme verursachen.
quelle
Wir können dies einfach tun, indem wir die CONCATE SQL-Funktion verwenden.
Das ist perfekt für meinen Fall.
quelle
Probieren Sie es aus.
quelle
quelle
quelle