我正在尝试获取查询类型的结果
SELECT * FROM table WHERE id IN(2,4,6,1,1,2) ORDER BY field (id,2,4,6,1,1,2)
我想以与列表相同的顺序获得结果,包括:重复项。上面的查询保留了订单但删除了重复。我知道我可以对结果进行后期处理,但只是想知道是否有更简单的方法。
由于
答案 0 :(得分:4)
这实际上会达到你想要的效果:
SELECT * FROM table
inner join (
select 1 as sort, 2 as value union all
select 2, 4 union all
select 3, 6 union all
select 4, 1 union all
select 5, 1 union all
select 6, 2) X on X.value=table.id
ORDER BY X.sort
答案 1 :(得分:0)
您是如何构建查询的?如果你不反对做一些小的手工工作(以后你可以用一些代码包装),工会应该得到你所需要的:
select id from table where id in (1, 2, 4, 6)
union all
select id from table where id in (6, 8);
返回:
------
| id |
|====|
| 1 |
| 2 |
| 4 |
| 6 |
| 6 |
| 8 |
------
编辑:实际上,我认为这不会对您的订购有所帮助。让我再玩这个了。