首頁 > 後端開發 > Golang > 如何在 PostgreSQL 中轉義特殊字元以實現準確的模式匹配?

如何在 PostgreSQL 中轉義特殊字元以實現準確的模式匹配?

Susan Sarandon
發布: 2024-11-20 04:30:02
原創
453 人瀏覽過

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

在PostgreSQL 中轉義字串以進行模式匹配

為了準確匹配PostgreSQL 中的模式,其中用戶提供的字串可能包含特殊模式字符,例如% ,考慮轉義這些字符以確保精確匹配。或者,應用程式可以處理轉義過程。

在 PostgreSQL 中,必須使用 來引用 % 和 _ 等字符,但這可以使用 ESCAPE 子句進行自訂。若要按字面匹配字符,必須將其引用兩次。

例如,要匹配模式'john%node1^node2.uucp@' 以^ 作為轉義字符,請使用以下查詢:

... WHERE field LIKE 'john^%node1^^node2.uucp@%' ESCAPE '^'
登入後複製

但是,當standard_conforming_strings 被禁用時( PG 9.1 預設啟用它),可用於其他目的。此外,在註入場景中可能需要客戶端引用。

對於Go 中的通用處理,考慮standard_conforming_strings 和替代引號字符,可以使用以下查詢:

db.Query("SELECT * from USERS where name like replace(replace(replace(,'^','^^'),'%','^%'),'_','^_') ||'%' ESCAPE '^'",
     variable_user_input);
登入後複製

This處理伺服器端特殊字符的轉義和替換,防止SQL注入並確保模式匹配準確。

以上是如何在 PostgreSQL 中轉義特殊字元以實現準確的模式匹配?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板