假設我有一個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)。 –