使用 python ORM 构建 SQL 查询 IN

Building SQL query IN, using python ORM

我想做这样的查询:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);

使用 python ORM。

我当前的代码如下:

# list_active_fugitives = [1, 2, 3]
for person_id in list_active_fugitives:
    person = db.session.query(models.Person).filter(models.Person.external_id == person_id)
    person[0].is_active = True
    db.session.commit()

我的目标是为具有正确 external_id 列的所有记录更新值 is_activeexternal_id 对每一行都是唯一的。 我可以在不遍历每条记录的情况下做到这一点吗?

您可以使用 ._in 功能

res = db.session.query(models.Person).filter(models.Person.external_id._in(list_active_fugitives ))
 for row in res:
      row.is_active = True
      db.session.commit()