2016-06-28 30 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''應該工作。 –