Heim  >  Artikel  >  Java  >  Wie verwende ich Platzhalter in vorbereiteten Anweisungen mit LIKE?

Wie verwende ich Platzhalter in vorbereiteten Anweisungen mit LIKE?

Linda Hamilton
Linda HamiltonOriginal
2024-11-15 12:32:02813Durchsuche

How to Use Wildcards in Prepared Statements with LIKE?

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:

  • Präfixübereinstimmung: „%“ wird an das Ende des Schlüsselworts angehängt (z. B. „keyword%“)
  • Suffixübereinstimmung: „%“ wird an den Anfang des Schlüsselworts angehängt (z. B. „%“ „keyword“)
  • Globale Übereinstimmung: „%“ wird an beide Enden angehängt des Schlüsselworts (z. B. „%“ „Schlüsselwort“ „%“)

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn