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

时间:2013-04-23 12:32:03

标签: php mysql sql sql-order-by

我有这个问题:

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

这将返回首次找到该列表中包含ID的所有名称。例如:如果具有id 221171的Jax是找到的第一个元素,那么它将是该结果表的第一个元素。

有没有办法按照它们在该列表中的显示方式对元素进行排序。 I.E.将在结果中列出的第一个名称应该具有414208的Id,第二个元素应该具有id 479516 ...最后一个元素应该具有Id 3226290。

2 个答案:

答案 0 :(得分:2)

试试这个:

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

答案 1 :(得分:1)

您可以使用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')