从列表中过滤为查询字符串 postgresql flask sqlalchemy [重复]

Posted

技术标签:

【中文标题】从列表中过滤为查询字符串 postgresql flask sqlalchemy [重复]【英文标题】:filtering from list as query string postgresql flask sqlalchemy [duplicate] 【发布时间】: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 表架构(带有类型的列)吗? 问题已更新 【参考方案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]))

【讨论】:

以上是关于从列表中过滤为查询字符串 postgresql flask sqlalchemy [重复]的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 临时表

PostgreSQL。按数组字段值的交集过滤

SwiftUI + Firestore - 基于从 Firestore 返回的数组的过滤器列表

如何使用同名的多个复选框自定义查询字符串?

从Map获取列表并使用groovy过滤

从 PostgreSQL 的 json 字段中查询字符串和数字字段的有效方法