我有来自外部postgresql数据库的ID列表。如何通过列表在sqlalchemy中订购数据
A = [1,2,3,4,5,6,7,98,0]
我会做查询使用SQLAlchemy的数据库,但我会被名单PostgreSQL里的数据进行排序。
我已经阅读了很多文档,但找不到任何建议如何做到这一点。
所以,最终我将有:
results = session.query(user).limit(20).offset(10).order_by(A)
干杯
UPDATE:
我找到的解决方案,它是如我所料不那么好,但效果很好。无论如何,如果你知道更好的解决方案,只需告诉我!
ids = ','.join([str(i) for i in A])
results = session.query(user).filter(user.id.in_(A)).\
limit(20).offset(10).\
order_by(" position(CONCAT(',',users.id::text,',') in ',{0},'.format(ids)")
BTW。我知道postgresql支持“连接值”http://stackoverflow.com/questions/866465/sql-order-by-the-in-value-list,但无法弄清楚如何实现这与sqlalchemy – Estatic
我很好奇这种排序的原因,你会介意更多的阐述吗? – van