在SQL中,如果我提供v_category =“ fiction”,则它将返回所有小说书籍,如果我们提供v_category = null,则它将提供所有类别的书籍:
select * from book where category = :v_category or :v_category is null
如何在SQLAlchemy中执行此操作:
books = Book.query.filter(or_(类别= v_category,v_category为None).all()
但是由于or_仅接受参数而不接受条件,它会引发错误:
".filter(or_(workscope = v_workscope, v_workscope is None)) ^
SyntaxError: positional argument follows keyword argument"
我想如果您的v_category
为空,则不应该按category.is_(None)
进行过滤。这样,您将退回所有类别为NULL
的书籍。根据您的问题,如果v_category
为None
,则要返回所有类别的所有帐册。