我有一个这样的sql:
select name from A where id in (23,24,22,23)
当我在Navicat中运行它时,结果只有一个23的结果。 我的问题是,如何保持查询结果的数量和顺序与(23,24,22,23)相同。
答案 0 :(得分:0)
如果要维护结果的顺序,请使用order by
子句,如
select name from A
where id in (23,24,22)
order by id;
同样,假设id
是表A
中的主键列,那么只有一行id = 23
。除非您使用UNION ALL
答案 1 :(得分:0)
如果您真的想要获取这样的记录,可以使用field
函数获取23,24,22
并按此类排序:
select name from A where id in (23,24,22) order by field(id, '23,24,22')
然后使用union all
获取另一个23
:
(select name from A where id in (23,24,22) order by field(id, '23,24,22'))
union all
select name from A where id = 23