python - 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)

但它返回了Operator 'getitem' is not supported on this expression

如何在不接触模型的情况下将此条件添加到我的 ORM 查询中?

或者如何在查询参数中添加原始sql语句?

PS:我不希望对模型进行任何更改。

最佳答案

您需要使用 Functions :

from sqlalchemy import func

q = db_session.query(
    func.IF(func.substr(Table.order_id, 1, 8) == 'STRING', Table1.name, Table2.type)
)

关于python - SQLAlchemy 添加查询条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34527970/

相关文章:

python - 从字符串中删除范围内的字符

php - 使用 ajax 从 php 检索数据

MySQL动态搜索查询程序

python - 将 "Bokeh created html file"嵌入到 Flask "template.html"文件中

python - Python : Error “TypeError: Can' t convert int to str implicitly”

python - 如何使用递归查找列表中偶数的总和?

python - 如何选择列表中的第一项

python - 来自flask的响应在React前端收到的Json上有额外的键

python - 将递归计算器重构为迭代计算器

mysql - 在mysql select中使用with case语句使用内连接