Python SQLAlchemy向查询添加条件
原始sql语句的开头如下所示:Python SQLAlchemy向查询添加条件,python,mysql,flask,sqlalchemy,Python,Mysql,Flask,Sqlalchemy,原始sql语句的开头如下所示: select if(substr(Table.order_id,1,8)='STRING', Table1.name, t=Table2.type) 试图在SQLAlchemy查询中重写它: query = db_session.query(Table,\ Table1.name if Table.order_id[1:8] == 'STRING' else Table2.type) 但它返回的运算符“get
select if(substr(Table.order_id,1,8)='STRING', Table1.name, t=Table2.type)
试图在SQLAlchemy查询中重写它:
query = db_session.query(Table,\
Table1.name if Table.order_id[1:8] == 'STRING' else Table2.type)
但它返回的运算符“getitem”在此表达式上不受支持
如何在不接触模型的情况下将此条件添加到ORM查询中
或者如何在查询参数中添加原始sql语句
PS:我不希望对模型进行任何更改。您需要使用:
但是我不确定
substr(?,1,8)
的长度通常是6(就像STRING
)原始字符串的长度是8,这是我的错误。太好了,谢谢!
from sqlalchemy import func
q = db_session.query(
func.IF(func.substr(Table.order_id, 1, 8) == 'STRING', Table1.name, Table2.type)
)