首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为in运算符传递python列表到plpy执行,不需要字符串内插

为in运算符传递python列表到plpy执行,不需要字符串内插
EN

Database Administration用户
提问于 2021-10-14 09:25:50
回答 1查看 138关注 0票数 0

对于'in‘where子句,我有一个plpython查询

代码语言:javascript
复制
    user_ids = [1,2,3]
    query = "SELECT department from users where id in ($1)" 
    prepared_query = plpy.prepare(query, ['bigint'])
        # not sure what the type should be if id is bigint
    plpy.execute(prepared_query, user_ids)

问题是我不确定争论的类型应该是什么

对于我尝试过的不同组合,我会得到错误:

  • 使用上面的语法时,由于列表中的逗号,它抛出了一个错误。
  • 在使用bigint[]时,我得到了no操作符bigint = bigint[]。
  • 我尝试使用",“和联接()传入逗号分隔的字符串。
  • 我已经把列表投给元组了,但是没有用。

有人把这个搞定了吗?文件记录不全。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-10-14 10:22:25

如果其他人有这个问题,我可以通过将where子句切换到where id = ANY($1)并使用bigint[]作为参数类型来解决这个问题。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/301112

复制
相关文章

相似问题

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