假设我有一个SQLAlchemy的表看起来像:动态添加过滤器SQLAlchemy的TextClause
class Country:
name = VARCHAR
population = INTEGER
continent = VARCHAR
num_states = INTEGER
我的应用程序允许看到的名称和人口的所有国家。所以我有一个TextClause
,它看起来像
"select name, population from Country"
我允许我的应用程序的原始查询,所以我没有选项来改变这选择。
在运行时,我想允许我的用户选择一个字段名称并将一个字段值放在我想允许过滤的位置上。例如:用户可以说我只想看看欧洲大陆是亚洲的国家的名字和人口。所以,我要动态添加的过滤器
.where(Country.c.continent == 'Asia')
但我不能添加.where
到TextClause
。
同样,我的用户可以选择看名字和人口的国家,num_states大于10所以我要动态添加的过滤器
.where(Country.c.num_states > 10)
但我又不能添加.where
到TextClause
。
我有什么选择来解决这个问题?
子查询可以以任何方式帮助吗?
你受到什么限制?你可以修改'TextClause'吗?你知道'TextClause'的结构吗? – univerio
我无法修改TextClause。我不知道TextClause的结构。该程序只告诉用户表的名称。在用户输入TextClause之后,用户还需要定义需要与TextClause结合使用的另一列(例如:num_states)和值(例如:小于10)。 –