SQL

使用in语句查询数据,并按照in里面的顺序排序

经常会用到用select * from tab where id in (1,2,3,4)语句。如果需要按照查询的id列表排列查询出来的数据记录的顺序该怎么做呢?
如下:
一、Access
select * From 表 Where id in(1,5,3) order by instr(',1,5,3,',','&id&',')
二、MSSQL
select * From 表 Where id in(1,5,3) order by charindex(','+rtrim(cast(id as varchar(10)))+',',',1,5,3,')
三、MySql数据库
1.数字型in查询,db_node_id为int
SELECT db_node_id, title FROM da_elements WHERE db_node_id IN (1342,1344,1343)  ORDER BY FIELD( db_node_id, 1342,1344,1343 );
2.字符型in查询,db_node_id为varchar
SELECT db_node_id, title FROM da_elements WHERE db_node_id IN ('1342','1344','1343')  ORDER BY FIELD( db_node_id, '1342','1344','1343' );
Enjoy~

0 个评论

要回复文章请先登录注册