我有来自外部postgresql数据库的ID列表。在
A = [1,2,3,4,5,6,7,98,0]
我将使用SQLAlchemy对数据库进行查询,但我将在postgresql中按列表对数据进行排序。在
我读了很多文档,但找不到任何建议。在
所以,在决赛中我会:
^{pr2}$干杯
更新:
我找到了解决办法,虽然没有我预期的那么好,但效果很好。不管怎样,如果你知道更好的解决办法,就让我知道!在
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)")
如果不需要在SQL中执行此操作,可以直接在python中对返回的对象列表进行排序。在
示例(使用python的sorted函数)
另一种方法是创建另一个helper表,其中包含每个用户id,加入并订购:
我无法判断这是否比您的版本更好,但它至少应该是非RDBMS特定的。
你可以试试:
相关问题 更多 >
编程相关推荐