SQLAlchemy中Postgres STRING_TO_ARRAY函数的等效实现方法
SQLAlchemy 迁移PostgreSQL字符串拆分数组逻辑的实现方法
不需要找第三方替代函数,SQLAlchemy 原生支持直接调用PostgreSQL内置的STRING_TO_ARRAY、UNNEST函数,通过通用的func构造器即可完成映射,生成的SQL和你写的原生查询完全一致。
- Core 语法写法参考:
from sqlalchemy import select, func # 导入你定义的item表模型,替换成实际的导入路径即可 from models import Item query = select( Item.type, func.unnest(func.string_to_array(Item.description, " ")).label("word") )
- ORM 语法写法参考:
from sqlalchemy import func from models import Item query = db.session.query( Item.type, func.unnest(func.string_to_array(Item.description, " ")).label("word") ) # 调用all()即可拿到和原生查询一致的结果 # result = query.all()
兼容提示:如果你使用的是1.4以前的旧版本SQLAlchemy,遇到函数名识别异常时,可以把函数名改为全大写形式,也就是
func.STRING_TO_ARRAY、func.UNNEST,执行逻辑完全一致。
内容的提问来源于stack exchange,提问作者ellisb
相关产品推荐
相关产品推荐

