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