MySQL按逗号分隔的顺序列表

MySQL按逗号分隔的顺序列表,mysql,Mysql,我有以下MySQL查询 SELECT * FROM Characters WHERE CharacterID IN (30, 29, 1, 292, 51) 返回我的字符列表,如下所示 | CharacterID | CharacterName | -------------------------------------- | 1 | Character 1 | | 29 | Character 29 |

我有以下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  | 
有没有什么地方我可以明确地说

SELECT * FROM Characters WHERE CharacterID IN (30, 29, 1, 292, 51)
ORDER BY (CharacterID, specifically in the order of (30, 29, 1, 292, 51))

您可以使用orderby字段()


FIELD()是一个返回逗号分隔列表的索引位置的函数

您可以使用order by FIELD()命令


FIELD()是一个返回逗号分隔列表的索引位置的函数

我来试一试,谢谢。很明显,我的谷歌浏览器今天关闭了。我会试试看,谢谢。显然,我的谷歌fu今天不工作了。
SELECT * FROM Characters WHERE CharacterID IN (30, 29, 1, 292, 51)
ORDER BY FIELD(CharacterID, 30, 29, 1, 292, 51)