2016-11-03 44 views
0

我有以下MySQL查询MySQL的顺序按逗号分隔的列表

SELECT * FROM Characters WHERE CharacterID IN (30, 29, 1, 292, 51) 

哪个返回我的人物的名单如下

| CharacterID | CharacterName | 
-------------------------------------- 
|  1  | Character 1 | 
|  29  | Character 29 | 
|  30  | Character 30 | 
|  51  | Character 51 | 
|  292  | Character 292 | 

我需要它在相同的顺序返回回来原来的逗号分隔值。因此,在这个特定的实例,我需要它返回......

| CharacterID | CharacterName | 
-------------------------------------- 
|  30  | Character 30 | 
|  29  | Character 29 | 
|  1  | Character 1 | 
|  292  | Character 292 | 
|  51  | Character 51 | 

反正是有,我可以明确说,像

​​

回答

3

您可以通过FIELD()

使用顺序
SELECT * FROM Characters WHERE CharacterID IN (30, 29, 1, 292, 51) 
ORDER BY FIELD(CharacterID, 30, 29, 1, 292, 51) 

FIELD()是返回一个逗号分隔的列表

+0

我给它一个镜头,感谢的指数位置的功能。显然我的Google-fu今天关闭了。 –