首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在postgresql-9.5中动态使用相似模式执行格式查询

在postgresql-9.5中动态使用相似模式执行格式查询
EN

Stack Overflow用户
提问于 2016-09-01 08:04:33
回答 3查看 2.5K关注 0票数 0

我想动态地将脚注插入到喜欢的模式中,但是它给出了错误的说法

错误:无法识别的转换类型说明符“‘”.

这是我的疑问:

代码语言:javascript
复制
   RETURN QUERY EXECUTE format ('SELECT foocolumn
             FROM footable  
                WHERE foocolumnother LIKE ''%L%''  ', footext);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-01 08:28:24

如果要将%添加到格式字符串中,则需要将其加倍,例如%F%%

%L还正确地添加了单引号,因此不需要将它们放在格式字符串中。

然而:使用%F%%会生成'bla'% --这是不正确的。

您需要将通配符添加到变量中,而不是格式字符串:

代码语言:javascript
复制
RETURN QUERY EXECUTE format ('SELECT foocolumn
         FROM footable  
         HERE foocolumnother LIKE %L'  ', concat(footext, '%'));
票数 1
EN

Stack Overflow用户

发布于 2018-01-29 18:20:21

派对有点晚了,但根据Erwin的回答文档的说法,你也可以试试regex的~角色。所以试试这个

代码语言:javascript
复制
RETURN QUERY EXECUTE format ('SELECT foocolumn
             FROM footable  
                WHERE foocolumnother ~ %L  ', footext);
票数 2
EN

Stack Overflow用户

发布于 2019-08-28 15:21:30

又来晚了一次。在Postgres 11.x中,单引号和百分数加倍适用于我:

代码语言:javascript
复制
l_query text := FORMAT('
    SELECT e.gid, e.sessionname, e.shared, e.created, e.created_by 
    FROM exercise e
    WHERE LOWER(e.created_by) LIKE ''%%%s%%'';'
    , LOWER(p_user));

RETURN QUERY EXECUTE l_query;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39265979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档