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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jerryvd/article/details/88107396

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,’,’))

展开阅读全文

没有更多推荐了,返回首页