Peewee:如何选择多个匹配ID的行?

2 投票
1 回答
4440 浏览
提问于 2025-04-18 05:02
list_of_ids = "23,55,11,24"
job = Job.select().join(User).where(Job.id IN (list_of_ids))

我想获取属于特定用户的所有工作,这些工作的ID要和我提供的id列表匹配。但是,我总是遇到语法错误,而且在Peewee的网站上找不到相关的文档。

我还希望能够对提供的ID列表进行更新和删除操作。

如果Peewee能让我直接插入一个SQL字符串就好了。我只需要这样做:

SELECT job.name FROM user INNER JOIN job ON user.id = job.id 
WHERE job.id IN (23,55,11,24)

1 个回答

10

你想要的效果类似于:

Job.select().join(User).where(Job.id << list_of_ids.split(','))

x << y 这个写法可以理解为 x 在 y 中,y 是一个列表或者查询,具体的说明可以在这里找到:https://peewee.readthedocs.io/en/latest/peewee/query_operators.html

撰写回答