擅长:python、mysql、java
<p>另一种方法是创建另一个helper表,其中包含每个用户id,加入并订购:</p>
<pre><code>A = [1,2,3,4,5,6,7,98,0]
stmt = " UNION ALL ".join( 'SELECT {0} AS user_id, {1} AS order_id'.format(uid, row)
for row, uid in enumerate(A))
ordq = text(stmt).columns(user_id=Integer, order_id=Integer).alias("t")
results = session.query(user).join(ordq, user.id == ordq.c.user_id).order_by(ordq.c.order_id).all()
</code></pre>
<p><em>我无法判断这是否比您的版本更好,但它至少应该是非RDBMS特定的。</em></p>