22,210
社区成员
发帖
与我相关
我的任务
分享
select
*,
(case id when 2 then 1 when 3 then 2 when 1 then 3) as OrderSn
where
id in (2,3,1)
order by OrderSn asc
SELECT *
FROM `USER`
WHERE id IN ( 2, 3, 1 )
ORDER BY (CASE
WHEN id = 2 THEN
3
WHEN id = 3 THEN
2
WHEN id = 1 THEN
1
ELSE
0
END
) DESC;
drop table if EXISTS user_test;
create table user_test(
id int PRIMARY key,
n varchar(20)
);
insert into user_test(id,n) values(1,'a');
insert into user_test(id,n) values(2,'b');
insert into user_test(id,n) values(3,'c');
insert into user_test(id,n) values(4,'d');
-- 以上为测试表及测试数据
select t1.* from user_test as t1
inner join (select 2 as id,1 as orderBy
union all select 1 as id,2 as orderBy
union all select 3 as id,3 as orderBy ) as t2
on t1.id=t2.id
ORDER BY t2.orderBy;