gpt4 book ai didi

postgresql - 如何在不使用 LIKE 中的替换函数的情况下使用 PostgreSQL 进行转义

转载 作者:行者123 更新时间:2023-11-29 12:31:39 25 4
gpt4 key购买 nike

简短版本:我需要一个函数来转义用于 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com