Postgres在SIMILAR TO语法中转义反斜杠

时间:2014-10-20 00:27:33

标签: postgresql

我的表格包含4行,如下所示:

Audit\\subfolder\System2.log
Audit\\subfolder/System1.log
Audit\\System2.log
Audit\\System1.log

运行以下查询:

  

从表格中选择*,其中file_location为SIMILAR TO   '审计\\ [^ /] *'

将产生:

Audit\\subfolder\System2.log
Audit\\System2.log
Audit\\System1.log

但运行以下查询:

  

从表格中选择*,其中file_location为SIMILAR TO   '审计\\ [^ \\] *'

什么也没有给我带来任何好处。

\\子句中转义SIMILAR TO的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

  

在SIMILAR TO子句中转义\的正确方法是什么?

使用ESCAPE可能是一个很自然的选择:

SELECT * 
  FROM table1 
 WHERE file_location SIMILAR TO 'Audit\\[^!\]*' ESCAPE '!'

这是 SQLFiddle 演示