簡體   English   中英

SQLAlchemy - 如何使用 kwargs 過濾數據? (和內部或條件)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM