如果想获取 id 为(1,2,3)的用户,有没有可以一次查询数据库全部获取到的方法?

2018-03-25 23:27:23 +08:00
 sevenQu

希望告知文档位置,我看文档,是 some_object = session.query(VersionedFoo).get((5, 10))这样
User.query.get((1,2,3,)),试了一下好像不行

3774 次点击
所在节点    Python
8 条回复
ParadiseDS
2018-03-26 00:35:42 +08:00
能用 sql 语句的话考虑一下 IN 操作符?
WordTian
2018-03-26 00:56:21 +08:00
楼上说的对
WordTian
2018-03-26 00:58:01 +08:00
select xxx from xxx where id in (1,2,3)
cz5424
2018-03-26 01:40:23 +08:00
用 filter 和 or 试试,没试过 in
banxi1988
2018-03-26 08:40:56 +08:00
some_objects = User.query.filter( User.id.in_(1,2,3) ).all()

我不知道你看的是什么文档,所以不知道到哪里找给你。
另外这些是基本的操作,我也没看文档。如果你要看 Query 的用法,比如 `filter` 请查看:SQLAlchemy 的 `sqlalchemy.orm.query.Query` 类的文档说明。
如果要看 User.id 这样的列还可以使用哪些操作。 可以看 `sqlalchemy.schema.Column` 类的相关文档说明。
Shynoob
2018-03-26 09:16:33 +08:00
范围查找 可以用 IN 关键字
sevenQu
2018-03-26 09:29:00 +08:00
vincenttone
2018-03-26 18:05:43 +08:00
query.filter(User.name.in_(['ed', 'wendy', 'jack']))

# works with query objects too:
query.filter(User.name.in_(
session.query(User.name).filter(User.name.like('%ed%'))
))

文档里是有的,楼主仔细看看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/441325

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX