如何在Postgresql中转义下划线
在Postgresql中搜索下划线时,字符如何在Postgresql中转义下划线,postgresql,escaping,wildcard,postgresql-9.3,Postgresql,Escaping,Wildcard,Postgresql 9.3,在Postgresql中搜索下划线时,字符\uu的文字用法无效。例如,如果要在所有表中搜索以\u by结尾的任何列,以查找更改日志或活动信息,例如更新者,审阅者等,则以下查询几乎可以工作: SELECT table_name, column_name FROM information_schema.columns WHERE column_name LIKE '%_by' 它基本上完全忽略下划线,并返回,就像您搜索了像“%by”这样的。这可能不是所有情况下的问题,但它有可能成为一个问题。如何搜
\uu
的文字用法无效。例如,如果要在所有表中搜索以\u by
结尾的任何列,以查找更改日志或活动信息,例如更新者
,审阅者
等,则以下查询几乎可以工作:
SELECT table_name, column_name FROM information_schema.columns
WHERE column_name LIKE '%_by'
它基本上完全忽略下划线,并返回,就像您搜索了像“%by”这样的
。这可能不是所有情况下的问题,但它有可能成为一个问题。如何搜索下划线?您需要使用反斜杠来转义下划线。将示例查询更改为以下内容:
SELECT table_name, column_name FROM information_schema.columns
WHERE column_name LIKE '%\_by'
只是遇到了同样的问题,单个反斜杠也不起作用。我在PostgreSQL社区中找到了此文档,它很有效:
正确的方法是用反斜杠转义下划线。你
实际上,您必须在查询中写入两个反斜杠:
从中选择*
foo-where-bar类似“%\\\\u-baz”
第一个反斜杠引用了查询解析器的第二个反斜杠,因此
最终进入系统的是%\\ uBaz,然后诸如此类
函数知道如何处理它
因此,请使用以下内容:
SELECT table_name, column_name FROM information_schema.columns
WHERE column_name LIKE '%\\_by'
源文档:%
和
是与类似的匹配的通配符<代码>%
=零个或多个,.
=任何一个字符。我必须做。。。例如E“%\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\。