我有來自外部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