转义 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中文网其他相关文章!