如何在 SQLAlchemy 中编写条件筛选查询

How to write a conditional filter query in SQLAlchemy

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

条件是(如果 first name 变量不为 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)
)

希望对您有所帮助。