Python SQLAlchemy:检查给定值是否在列表中 问题
在PostgreSQL中,使用Python SQLAlchemy:检查给定值是否在列表中 问题,python,sql,postgresql,sqlalchemy,Python,Sql,Postgresql,Sqlalchemy,在PostgreSQL中,使用In操作符检查字段是否在给定列表中: SELECT * FROM stars WHERE star_type IN ('Nova', 'Planet'); SQL查询中的SQLAlchemy等价于什么? 我试过什么 Python在 查询返回空 SQLAlchemy的或 此查询返回正确的结果,但它并不优雅,也不难扩展。您可以这样做: db_session.query(Star).filter(Star.star_type.in_(['Nova', 'Planet']
In
操作符检查字段是否在给定列表中:
SELECT * FROM stars WHERE star_type IN ('Nova', 'Planet');
SQL查询中的SQLAlchemy等价于什么?
我试过什么
Python在
查询返回空
SQLAlchemy的或
此查询返回正确的结果,但它并不优雅,也不难扩展。您可以这样做:
db_session.query(Star).filter(Star.star_type.in_(['Nova', 'Planet']))
解决这个问题的一个糟糕方法(在找到公认答案之前我成功地使用了这个方法)是使用列表理解:
db_session.query(Star).filter(
or_(*[Star.star_type == x for x in ['Nova', 'Planet'])
)
db_session.query(Star).filter(Star.star_type.in_(['Nova', 'Planet']))
db_session.query(Star).filter(
or_(*[Star.star_type == x for x in ['Nova', 'Planet'])
)