postgresql - 如何在postgres中搜索以特殊字符开头的名称
问题描述
我的名字以特殊字符开头。我想列出这些名字。有些名字是'%faf yf? -s_'
,'%faO{','%]fac?)f'
等等。
我列出从 '%' 开始的名称的查询是这样的:
Select * from table where name like '%fa%';
此查询不起作用,它还列出了以“fa”开头的名称。我只需要从 '%fa' 开始的值。我也试过这样的查询
Select * from table where name like'[%]fa%'.
解决方案
你需要逃避%
:
要匹配文字下划线或百分号而不匹配其他字符,pattern 中的相应字符必须以转义字符开头。默认转义字符是反斜杠,但可以使用 ESCAPE 子句选择不同的转义字符。要匹配转义字符本身,请编写两个转义字符
Select *
from the_table
where name like'\%fa%' escape '\'
推荐阅读
- c# - SqlLite 中正确的 RowVersion 模拟,并在 Entity Framework Core 上转换为 ulong
- c# - 如何在 Specflow 中注入一次配置?
- android - 如何检查pdf文件是从其他文件类型转换而来的
- java - 带有 Java 应用程序的 MacOS Catalina 上出现的新权限
- javascript - 未定义不是函数'navigation.navigate'
- python - 从子字符串开始获取子字符串,并且长度有限
- java - 作为 InputStreamResource 返回时 Excel 文件未打开
- javascript - 使用 javascript 创建一个选择器
- python - Python:从CSV文件中的开始时间列和结束时间列获取总小时数
- mysql - Mysql 结果集中的首选项