sql语句中使用in,按照in里面的字符串排序

sql语句中in的使用遇到的问题

最近工作中,有条查询语句需要适用in,但是经过测试,没有按照in里面的字符串排序

下面列出我尝试的方法,总有一款适合你

1 .SELECT shop_id,shop_short_name FROM shops WHERE shop_id IN(40,44,43) ORDER BY field(shop_id,40,44,43)

2.SELECT * FROM T_Name

WHERE ID IN (‘id1’,‘id2’,‘id3’,…)

ORDER BY CHARINDEX(ID,‘id1,id2,id3,…’)

3.想到有个函数能对sql语句进行拼接 instr

INSTR(STR,SUBSTR) 在一个字符串(STR)中搜索指定的字符(SUBSTR),返回发现指定的字符的位置(INDEX);
STR 被搜索的字符串
SUBSTR 希望搜索的字符串

改成

SELECT * FROM T_Name

WHERE ID IN (‘id1’,‘id2’,‘id3’,…)

ORDER BY INSTR(’,id1,id2,id3,’,CONCAT(’,’,ID,’,’))

你可能感兴趣的:(工作笔记)