轉義 PostgreSQL LIKE 模式中的特殊字元
轉義 LIKE 模式中的特殊字元對於確保準確匹配至關重要。例如,考慮這樣一種情況:您正在搜尋名稱列以使用者提供的字串(例如「rob%」)開頭的行。但是,如果使用者輸入包含“_”等特殊字符,則會導致誤報。
轉義機制
PostgreSQL 允許您使用轉義特殊字元反斜線 () 或使用 ESCAPE 子句指定的使用者定義的轉義字元。要按字面匹配特殊字符,您必須將其轉義兩次。
範例
要按字面匹配“rob_”,您將使用以下 LIKE 模式:
WHERE name LIKE 'rob^^%'
或者,您可以使用轉義子句並指定替代轉義字元:
WHERE name LIKE 'rob_%node1^^node2.uucp@%' ESCAPE '^'
這將符合「john%node1^node2.uccp@」後面跟著任何字元。
注意事項
通用SQL 語句
這是一個通用的SQL 語句,可以使用或不使用standard_conforming_strings ON,使用伺服器端轉義字元來取代:
SELECT * FROM USERS WHERE name LIKE replace(replace(replace(,'^','^^'),'%','^%'),'_','^_') ||'%' ESCAPE '^'
以上是如何轉義 PostgreSQL LIKE 模式中的特殊字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!