首页 > 解决方案 > 如何在postgres中搜索以特殊字符开头的名称

问题描述

我的名字以特殊字符开头。我想列出这些名字。有些名字是'%faf yf? -s_','%faO{','%]fac?)f'等等。

我列出从 '%' 开始的名称的查询是这样的:

Select * from table where name like '%fa%';

此查询不起作用,它还列出了以“fa”开头的名称。我只需要从 '%fa' 开始的值。我也试过这样的查询

Select * from table where name like'[%]fa%'. 

标签: postgresql

解决方案


你需要逃避%

从手册中引用

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

Select * 
from the_table 
where name like'\%fa%' escape '\' 

推荐阅读