SQL-根据列表顺序对项目进行排序


SQL- sort items according to their list order

我有这样的查询:

SELECT Name FROM Table WHERE Id IN (414208,479516,4129769,414211,221171,3226290)

返回该列表中所有具有id的名称,按照它们第一次被发现的顺序。例如:如果id为221171的Jax是找到的第一个元素,那么它将是结果表的第一个元素。

是否有一种方法可以根据元素在列表中的出现方式对它们进行排序?也就是说,在结果中列出的第一个名字的Id应该是414208,第二个元素的Id应该是479516…最后一个元素的Id应该是3226290。

试试这个:

SELECT 
   Id
FROM 
   Table
WHERE 
   Id IN (414208,479516,4129769,414211,221171,3226290)
ORDER BY 
   FIELD(Id, 414208,479516,4129769,414211,221171,3226290)

可以使用mysql函数find_in_set

SELECT Name FROM Table WHERE Id IN (414208,479516,4129769,414211,221171,3226290) order by FIND_IN_SET(ID,'414208,479516,4129769,414211,221171,3226290')