作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
简短版本:我需要一个函数来转义用于 LIKE
表达式的字符串,所以 fr_e%d
变成 fr\_e\%d
.
我正在寻找无需使用替换即可转义查询结果的方法。因为在这个结果中我有这个 char _ 里面的路径。因为我在 LIKE 语句中使用了这个结果,所以它使“_”成为一个像 start * 这样的 clown 。
我必须使用 LIKE,因为我正在同一条语句中进行一些连接,他们需要我使用 LIKE 这一事实。
我尝试用 ~ 替换 LIKE,但我会遇到与字符 '.' 相同的问题因为 ~ 是使用正则表达式,所以也跳过这个解决方案。
最佳答案
create function quote_like(text) returns text language sql immutable strict as
$quote_like$
select regexp_replace($1, $$[_%\\]$$, $$\\\&$$, 'g');
$quote_like$;
此函数将在提供的字符串中所有出现的 _
、%
和 \
添加 \
。您可以像这样使用它:
select * from tablename
where tablecolumn like
'%'
||
(select quote_like(substring) from substrings where substring_id=123)
||
'%';
关于postgresql - 如何在不使用 LIKE 中的替换函数的情况下使用 PostgreSQL 进行转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13258735/
我是一名优秀的程序员,十分优秀!