如何在 PostgreSQL 中使用 ILIKE 运算符在文本中搜索“%”(百分号)

Moh*_*ood 3 sql string postgresql where-clause sql-like

| id | text  |\n|----|-------|\n| 1  | AB    |\n| 2  | CD%EF |\n| 3  | GH    |\n
Run Code Online (Sandbox Code Playgroud)\n

我在表中有一个文本列,其值带有“%”符号。

\n

我想使用以下查询 \xe2\x80\x94 提取该值

\n
SELECT text FORM table\nWHERE text ILIKE '%%%'\n
Run Code Online (Sandbox Code Playgroud)\n

预期输出应该是:

\n
CD%EF\n1 {row}\n
Run Code Online (Sandbox Code Playgroud)\n

实际输出返回:

\n
AB\nCD%EF\nGH\n3 {rows}\n
Run Code Online (Sandbox Code Playgroud)\n

GMB*_*GMB 5

您可以使用它\%来表示字面百分号:

SELECT text FORM table WHERE text ILIKE '%\%%'
Run Code Online (Sandbox Code Playgroud)

就像文档所说:

要匹配文字下划线或百分号而不匹配其他字符,相应的字符前面pattern必须带有转义字符。默认转义字符是反斜杠,但可以使用该ESCAPE子句选择不同的转义字符。要匹配转义字符本身,请写入两个转义字符。