Verwendung des LIKE-Platzhalters mit vorbereiteten Anweisungen in MySQL-Abfragen
In MySQL-Datenbankabfragen ermöglicht der LIKE-Operator musterbasierte Suchen. Bei der Verwendung vorbereiteter Anweisungen zum Ausführen solcher Abfragen ist es wichtig, den LIKE-Platzhalter korrekt einzubinden.
Eine häufige Anforderung ist die Durchführung einer Präfix-Match-Suche. Um dies zu erreichen, sollte das Schlüsselwort % an den Suchbegriff angehängt werden. Bei der Verwendung von vorbereiteten Anweisungen ist es jedoch falsch, den Platzhalter direkt mit dem Parameterwert zu verketten.
Legen Sie stattdessen den Wert selbst in der Abfrage der vorbereiteten Anweisung fest. Für eine Präfixübereinstimmung ändern Sie den Suchbegriff wie folgt:
notes = notes .replace("!", "!!") .replace("%", "!%") .replace("_", "!_") .replace("[", "!["); PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'"); pstmt.setString(1, notes + "%");
Das Schlüsselwort ESCAPE gibt das Escape-Zeichen an, das zum Escapezeichen von Sonderzeichen innerhalb des Platzhalters verwendet wird. Standardmäßig ist es ein Backslash (), kann aber in ein beliebiges Zeichen geändert werden.
Verwenden Sie für eine Suffix-Übereinstimmung in ähnlicher Weise Folgendes:
pstmt.setString(1, "%" + notes);
Und für eine globale match:
pstmt.setString(1, "%" + notes + "%");
Durch das Setzen des Platzhalters im Suchbegriff kann der LIKE-Operator effektiv mit vorbereiteten Anweisungen verwendet werden, um verschiedene musterbasierte Suchen durchzuführen MySQL-Datenbanken.
Das obige ist der detaillierte Inhalt vonWie verwende ich LIKE-Platzhalter mit vorbereiteten Anweisungen in MySQL-Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!