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