如何在SQLAlchemy中编写条件过滤器查询



我是sqlAlchemy的新手。我想将现有的SQL查询转换为sqlAlchemy。

条件是(如果firstName变量不为null,则显示带有firstName的结果,否则忽略(

...
AND (:FirstName is NULL 
OR UPPER (employee.firstname) LIKE UPPER ('{firstName}'||'%'))
AND (:LasttName is NULL 
OR UPPER (employee.firstname) LIKE UPPER ('{lastName}'||'%'))

您可以使用sqlalchemy函数来实现这一点:

from sqlalchemy import func, or_, and_
db.session.query(
employee
).filter(
or_(
employee.firstname == None,
employee.firstname.ilike('...')
)
# add other filters if needed (and assumed)
)

希望它能有所帮助。

最新更新