[英]how to dynamic “_or” in filter query sqlalchemy
我是使用scrape
和sqlalchemy
的初學者,我在這個過濾器查詢中發現了一個問題。
data = ['foo','bar']
q_cat = self.session.query(Category).filter_by(_or(name=='foo',name=='bar')).all()
我的代碼中的數據變量是動態的。 如何在_or(...)
內部使其動態化?
謝謝。
您似乎希望搜索類別是否屬於任何數據元素。 在這種情況下,最好使用in_
。 這是一個例子。
Category.query.filter(Category.name.in_(data))
這將為您提供包含data
存在的名稱的所有類別的列表。
如果你只是做所有等於操作,那么在 _運算符中最好使用。
但是,如果你真的想在or_和and_運營商明確,無論采取條款任意數量。
如果數據列表的長度不同,則可以創建將用於or_的邏輯子句的新列表,例如:
data = ['foo','bar']
data_comparisons = [Category.name == field for field in data]
q_cat = self.session.query(Category).filter_by(*data_comparisons).all()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.