关于Select Where In 的排序问题

2022-11-12 09:55:10
内容摘要
这篇文章主要为大家详细介绍了关于Select Where In 的排序问题,具有一定的参考价值,可以用来参考一下。 对此感兴趣的朋友,看看idc笔记做的技术笔记! 代码如下: Select* FRO
文章正文

这篇文章主要为大家详细介绍了关于Select Where In 的排序问题,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!

代码如下:


Select* 
FROMtable1 
Where(IDIN(3,5,1,4,2))

代码如下:


Select* 
FROMtable1 
Where(IDIN(3,5,1,4,2))如果In后面的条件都是数字,那MSSQL排序应该为 

代码如下:


Select* 
FROMtable1 
Where(IDIN(3,5,1,4,2)) 
orDERBYCHARINDEX(','+CONVERT(nvarchar,ID)+',',','+CONVERT(nvarchar,Replace('3,5,1,4,2','',''))+',')

代码如下:


Select* 
FROMtable1 
Where(IDIN(3,5,1,4,2)) 
orDERBYCHARINDEX(','+CONVERT(nvarchar,ID)+',',','+CONVERT(nvarchar,Replace('3,5,1,4,2','',''))+',')改进方法,不去处理空格,直接改用空格判断.可以用来判断少数有空格的字符条件.

代码如下:


Select* 
FROMtable1 
Where(IDIN(3,5,1,4,2)) 
orDERBYPATINDEX('%'+CONVERT(nvarchar(4000),ID)+'%',''+CONVERT(nvarchar(4000),Replace('3,5,1,4,2',',',','))+'')

代码如下:


Select* 
FROMtable1 
Where(IDIN(3,5,1,4,2)) 
orDERBYPATINDEX('%'+CONVERT(nvarchar(4000),ID)+'%',''+CONVERT(nvarchar(4000),Replace('3,5,1,4,2',',',','))+'')
其实还是在SQL外处理好条件字符串再进行查询和排序比较好.对于MYSQL排序可能要改为(MYSQL不熟):

代码如下:


Select* 
FROMtable1 
Where(IDIN(3,5,1,4,2)) 
orDERBYFIND_IN_SET(ID,'3,5,1,4,2')

注:关于关于Select Where In 的排序问题的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!