【问题标题】:filtering from list as query string postgresql flask sqlalchemy [duplicate]从列表中过滤为查询字符串 postgresql flask sqlalchemy [重复]
【发布时间】:2022-01-14 05:41:34
【问题描述】:

我将列表作为查询字符串传递,我想使用所有列表值的值从数据库中检索数据。列表值表示列的值。我的代码如下所示:

companylist=['a','b','c']
sql = text("""select * from company_data cd  where cd.company_id=:companyId""")
priceItem = connection.execute(sql, id=id, companyId=companylist).fetchAll()

这就是表格的样子:

create table company_data
(
    id    varchar(255) primary key,
    company_id   text,
    price    text,
    volume text
);

我想要的只是根据数据库列表中的值过滤所有值,并且列表不能大于 20。我该如何解决这个问题?

【问题讨论】:

  • 数据库中的company_id是一个列表还是另一个表的foreign_key(int)?
  • 它不是外键。它只是一个列。 companylist 包含我要过滤的某些公司列的值
  • 您能展示一下您的 company_data 表架构(带有类型的列)吗?
  • 问题已更新

标签: python postgresql flask sqlalchemy


【解决方案1】:

我不了解text() 并将值插入到execute() 中,这里我将其转换为字符串格式的sql 命令。

companylist=['a','b','c']
sql = ("""select * from company_data cd  where cd.company_id = ANY(ARRAY{})""".format(companylist))
priceItem = connection.execute(sql).fetchAll()

这是参考

WHERE column = ANY(ARRAY([a, r, r, a, y]))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2016-12-09
    • 2016-05-08
    • 1970-01-01
    • 2020-11-13
    • 2013-08-12
    相关资源
    最近更新 更多