2016-06-28 111 views
6

当在PostgreSQL下划线搜索,文字使用的字符_不起作用。例如,如果你想搜索,在​​结束的列所有的表,这样的事情改变日志或活动信息,例如updated_byreviewed_by等,下面的查询工作差不多:如何逃生下划线在PostgreSQL

SELECT table_name, column_name FROM information_schema.columns 
WHERE column_name LIKE '%_by' 

它基本上完全忽略下划线和回报,如果你想搜索LIKE '%by'。这在所有情况下都不是问题,但它有可能是一个问题。如何搜索下划线?

+2

“%”和“_”是“类似”匹配的通配符。 '%'=零或多个,'_' =任何一个单个字符。 –

回答

5

你需要使用一个反斜杠逃脱下划线。将示例查询更改为以下内容:

SELECT table_name, column_name FROM information_schema.columns 
WHERE column_name LIKE '%\_by' 
+4

我不得不这样做'...像E'\\%_ by''(在命令行中使用的psql,PostgreSQL的20年4月8日) –

+0

如何找到在这种情况下:SELECT TABLE_NAME,COLUMN_NAME已从INFORMATION_SCHEMA.COLUMNS WHERE列名LIKE '%name_abc' –

+1

@SameerEk'SELECT表名,列名information_schema.columns在列名LIKE“%名\ _abc''应该工作。 –