Platzhalterabfragen in vorbereiteten Anweisungen mit LIKE
Bei der Verwendung vorbereiteter Anweisungen für Datenbankabfragen erfordert die Implementierung einer Suchfunktion mit Schlüsselwörtern häufig die Verwendung von der LIKE-Operator. Dieser Leitfaden bietet eine umfassende Lösung, wie Sie dies mit vorbereiteten Anweisungen erreichen können.
Um den LIKE-Operator mit vorbereiteten Anweisungen zu verwenden, können Sie das Platzhaltersymbol (%) an den Suchbegriff innerhalb des für die vorbereiteten Anweisungen bereitgestellten Werts anhängen Anweisung, wie zum Beispiel:
String notes = "keyword%"; PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ?"); pstmt.setString(1, notes); ResultSet rs = pstmt.executeQuery();
Durch Festlegen des Werts mit dem angehängten Platzhalter aktivieren Sie eine Abfrage, die alle Datensätze übereinstimmt, bei denen die Spalte „Notizen“ das Eingabeschlüsselwort als enthält Teilzeichenfolge.
Bestimmte Zeichen haben jedoch in SQL eine besondere Bedeutung, darunter %, !, [, _ und ]. Um eine ordnungsgemäße Verarbeitung dieser Zeichen sicherzustellen, sollten sie mithilfe der ESCAPE-Klausel in der vorbereiteten Anweisung maskiert werden. Zum Beispiel:
String notes = "keyword%" .replace("!", "!!") .replace("%", "!%") .replace("_", "!_") .replace("[", "!["); PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'"); pstmt.setString(1, notes + "%");
Indem Sie diese Zeichen durch ihre maskierten Versionen ersetzen, interpretiert die vorbereitete Anweisung den Platzhalter korrekt und gleicht Datensätze entsprechend ab.
Je nach Ihren Suchanforderungen können Sie die anpassen Platzierung des Platzhalters, um verschiedene Übereinstimmungsszenarien zu erreichen:
Das obige ist der detaillierte Inhalt vonWie verwende ich Platzhalter in vorbereiteten Anweisungen mit LIKE?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!