[英]Dynamically generating where statements during runtime
我正在使用Sqlalchemy来自动化SQL查询,以分析我们运行的A / B测试。
这是一个示例查询:
uniques_by_day = select([
first_seen_byos.c.unique_id,
func.date_trunc('day', a_unique_users.c.ds).label('current_day'),
func.date_trunc('day', first_seen_byos.c.ds).label('cohort_join_day')
]).\
select_from(joined_table).\
where(
and_(
a_unique_users.c.os_type == 'iphone_native_app',
first_seen_byos.c.ds >= '2017-01-01'
)
)
在查询之间要更改的是where / and_语句的子句。 我该如何写一条通用语句来使用动态的where子句集? 我预计这些子句将始终是一系列AND子句。
当我需要动态构建查询时,通常会执行以下操作:
query = session.query(MyTable)
if case_1:
query = query.filter(MyTable.column_1 == 'foo')
if case_2:
query = query.filter(MyTable.column_2 == 'bar')
query_results = query.all()
这使用了声明式基本语法,但我认为它可以使您理解。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.