[英]SQLAlchemy - How can i filter data with kwargs? (And inside or condition)
我有包含字典的條件列表,例如:
conditions = [
{"language_id": 1, "writer_level_id": 3},
{"language_id": 2, "writer_level_id": 2},
{"language_id": 2, "writer_level_id": 3},
{"language_id": 1, "writer_level_id": 1},
]
我正在嘗試構建一個查詢,例如:
queries = []
for i in conditions:
queries.append(
(
RelUserWriterLevel.language_id == i["language_id"],
RelUserWriterLevel.writer_level_id == i["writer_level_id"],
)
)
data = data.filter(or_(*queries))
它不起作用,因為在這種情況下我發送元組。 但我想構建一個類似的 SQL;
SELECT * FROM user WHERE (language_id = .. and writer_level_id = ..) OR (...);
因此,當我需要使用kwargs過濾時,我不知道如何在 OR 過濾中構建 AND 案例。
我研究過的主題:
在第二個主題中,該解決方案僅適用於一種情況。 但是,在我的問題中,我需要像queries = [Xy == 'a' AND Xz == 'a', ...]
然后像filter(or_(*queries))
一樣使用它
我感謝你所有的努力。
如果有人想知道如何解決這個問題;
queries = (and_(RelUserWriterLevel.language_id==i['language_id'], RelUserWriterLevel.writer_level_id==i['writer_level_id']) for i in conditions)
data = data.filter(or_(*queries))
詳細說明在這里: How to get rows which match a list of 3-tuples conditions with SQLAlchemy
我是這樣解決的!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.