Heim > Datenbank > MySQL-Tutorial > Können Parameter mit der LIKE-Anweisung in SQL für den Mustervergleich verwendet werden?

Können Parameter mit der LIKE-Anweisung in SQL für den Mustervergleich verwendet werden?

Susan Sarandon
Freigeben: 2025-01-05 11:12:40
Original
603 Leute haben es durchsucht

Can Parameters Be Used with the LIKE Statement in SQL for Pattern Matching?

So verwenden Sie Parameter und die LIKE-Anweisung in SQL

In SQL können Sie mit der LIKE-Anweisung einen Mustervergleich innerhalb von Zeichenfolgen durchführen. Die Verwendung ohne entsprechende Vorsichtsmaßnahmen kann jedoch zu SQL-Injection-Angriffen führen. Um solche Angriffe zu verhindern, können parametrisierte Abfragen eingesetzt werden.

Ursprüngliche Frage

Um SQL-Injection-Schwachstellen zu begrenzen, wurde die folgende Abfrage mithilfe von Parametern erstellt:

SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')
Nach dem Login kopieren

Die Ausführung dieser Abfrage in einem Programm führt jedoch zu keinen Ergebnissen. Können Parameter auf diese Weise verwendet werden oder sind sie nur in Situationen wie den folgenden anwendbar:

SELECT * FROM compliance_corner WHERE body LIKE '%<string>%'
Nach dem Login kopieren

Lösung

Parameter können wie vorgesehen in LIKE-Anweisungen verwendet werden . Die Syntax in der ursprünglichen Abfrage ist falsch. So verwenden Sie Parameter in diesem Szenario richtig:

Dim cmd As New SqlCommand(
    "SELECT * FROM compliance_corner" _
    + " WHERE (body LIKE @query )" _
    + " OR (title LIKE @query)")

cmd.Parameters.Add("@query", "%" & searchString & "%")
Nach dem Login kopieren

Diese Abfrage stimmt korrekt mit Zeichenfolgen überein, die die Suchzeichenfolge im Text- oder Titelfeld enthalten.

VB. NET-Überlegungen

Die bereitgestellte Lösung ist syntaktisch korrekt für VB.NET. Die tatsächliche Implementierung kann jedoch je nach dem jeweiligen Datenbankanbieter und der verwendeten Verbindungsmethode variieren. Weitere Hinweise finden Sie in der entsprechenden Dokumentation.

Das obige ist der detaillierte Inhalt vonKönnen Parameter mit der LIKE-Anweisung in SQL für den Mustervergleich verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage