Heim > Backend-Entwicklung > Golang > Wie entferne ich Sonderzeichen für einen genauen Mustervergleich in PostgreSQL?

Wie entferne ich Sonderzeichen für einen genauen Mustervergleich in PostgreSQL?

Susan Sarandon
Freigeben: 2024-11-20 04:30:02
Original
456 Leute haben es durchsucht

How to Escape Special Characters for Accurate Pattern Matching in PostgreSQL?

Escape-Zeichenfolgen für den Mustervergleich in PostgreSQL

Um Muster in PostgreSQL genau abzugleichen, wenn die vom Benutzer bereitgestellte Zeichenfolge spezielle Musterzeichen wie % enthalten kann , erwägen Sie, diese Zeichen zu maskieren, um genaue Übereinstimmungen sicherzustellen. Alternativ kann die Anwendung den Escape-Prozess übernehmen.

In PostgreSQL müssen Zeichen wie % und _ mit Anführungszeichen gesetzt werden, dies kann jedoch mit der ESCAPE-Klausel angepasst werden. Um das Zeichen wörtlich zu finden, muss es zweimal in Anführungszeichen gesetzt werden.

Um beispielsweise das Muster „john%node1^node2.uucp@“ mit ^ als Escape-Zeichen abzugleichen, verwenden Sie die folgende Abfrage:

... WHERE field LIKE 'john^%node1^^node2.uucp@%' ESCAPE '^'
Nach dem Login kopieren

Wenn jedoch standard_conforming_strings deaktiviert ist (PG 9.1 ist standardmäßig aktiviert), wird es für andere Zwecke verwendet. Darüber hinaus können in Injektionsszenarien clientseitige Anführungszeichen erforderlich sein.

Für die generische Handhabung in Go unter Berücksichtigung von standard_conforming_strings und alternativen Anführungszeichen kann die folgende Abfrage verwendet werden:

db.Query("SELECT * from USERS where name like replace(replace(replace(,'^','^^'),'%','^%'),'_','^_') ||'%' ESCAPE '^'",
     variable_user_input);
Nach dem Login kopieren

This kümmert sich um das Escapen und Ersetzen von Sonderzeichen auf der Serverseite, verhindert die SQL-Injection und sorgt für einen genauen Mustervergleich.

Das obige ist der detaillierte Inhalt vonWie entferne ich Sonderzeichen für einen genauen Mustervergleich in PostgreSQL?. 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