gpt4 book ai didi

sqlalchemy - 一次查询多个值

转载 作者:行者123 更新时间:2023-12-04 03:01:29 25 4
gpt4 key购买 nike

在 SQL 中,我可以得到一组这样的行:

SELECT * FROM table WHERE id in (2,3,5,7,11);

等效的 sqlalchemy 查询看起来如何? cls.id in [2,3,5,7,11]计算结果为 False ,所以这段代码:

q = meta.Session.query(cls)
q = q.filter(cls.id in [2,3,5,7,11])
return q.all()

失败但有异常:
  File "foo.py", line 1234, in findall_by_ids
q = q.filter(cls.id in [2,3,5,7,11])
File "<string>", line 1, in <lambda>
File "/eggs/sqlalchemy/orm/query.py", line 50, in generate
fn(self, *args[1:], **kw)
File "/eggs/sqlalchemy/orm/query.py", line 1177, in filter
"filter() argument must be of type "
ArgumentError: filter() argument must be of type sqlalchemy.sql.ClauseElement
or string

最佳答案

使用 in_

q.filter(cls.id.in_([2, 3, 5, 7, 11]))

你的翻译说:
ArgumentError: filter() argument must be of type sqlalchemy.sql.ClauseElement
or string

那些运算符已被覆盖,将返回过滤器需要的内容,您可以查看 sqlalchemy.sql.operators .原因 cls.id in [2, 3, 5, 7, 1]不起作用是因为 in 是 [2, 3, 5, 7, 1] 的运算符,它将返回 TrueFalse .

关于sqlalchemy - 一次查询多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15267755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com