Peewee:如何选择多个匹配ID的行?
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