我想知道是否有away(可能是更好的方法)按in()子句中值的顺序排序.
问题是我有两个查询,一个获取所有ID,另一个检索所有信息.第一个创建ID的顺序,我希望第二个按此顺序排序.ID以正确的顺序放入in()子句中.
所以它应该是(非常简单的):
SELECT id FROM table1 WHERE ... ORDER BY display_order, name
SELECT name, description, ... WHERE id IN ([id's from first])
问题在于,第二个查询返回结果的顺序与ID放入in()子句的顺序不同.
我发现的一个解决方案是将所有ID放入一个带有自动递增字段的临时表中,然后将该字段加入到第二个查询中.
有更好的 Select 吗?
Note:由于第一个查询"由用户"运行,第二个查询在后台进程中运行,因此无法使用子查询将2个查询合并为1个查询.
我使用的是MySQL,但我认为让它知道其他数据库也有哪些选项可能是有用的.