我有以下sql命令,我需要在PostgreSQL中转义括号,我该怎么做?
SELECT rua
FROM logradouros
WHERE rua ~* 'Antonio De Sant\'Ana Galvao Av Frei (Av 01 Parte A)'
LIMIT 100;
Run Code Online (Sandbox Code Playgroud)
使用反斜杠转义括号。请注意,如果standard_conforming_strings参数设置为 off (这是 PostgreSQL 9.1 之前的默认行为),则需要使用两个反斜杠\\。
转义括号的方法一般有以下三种:
'pattern'语法,取决于 standard_conforming_strings 设置E'pattern'$$pattern$$或$sometext$pattern$sometext$第一个是标准 SQL(尤其是 standard_conforming_strings),其他是 PostgreSQL 扩展。选择您喜欢的任何方法。
这里有一些例子:
SET standard_conforming_strings = 0;
SELECT
'Antonio De Sant''Ana Galvao Av Frei (Av 01 Parte A)'
~*
'Antonio De Sant\'Ana Galvao Av Frei \\(Av 01 Parte A\\)'
SET standard_conforming_strings = 1;
SELECT
'Antonio De Sant''Ana Galvao Av Frei (Av 01 Parte A)'
~*
'Antonio De Sant''Ana Galvao Av Frei \(Av 01 Parte A\)'
SELECT
'Antonio De Sant''Ana Galvao Av Frei (Av 01 Parte A)'
~*
E'Antonio De Sant\'Ana Galvao Av Frei \\(Av 01 Parte A\\)'
SELECT
'Antonio De Sant''Ana Galvao Av Frei (Av 01 Parte A)'
~*
$$Antonio De Sant'Ana Galvao Av Frei \(Av 01 Parte A\)$$
SET standard_conforming_strings = default;
Run Code Online (Sandbox Code Playgroud)