我将列表作为查询字符串传递,并且我希望从数据库中检索具有所有列表值的值的数据。列表值表示列的值。我的代码看起来像这样:
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。我该如何解决这个问题?
我不了解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]))