我有以下 MySQL 查询
SELECT * FROM Characters WHERE CharacterID IN (30, 29, 1, 292, 51)
Run Code Online (Sandbox Code Playgroud)
返回我的字符列表,如下所示
| CharacterID | CharacterName |
--------------------------------------
| 1 | Character 1 |
| 29 | Character 29 |
| 30 | Character 30 |
| 51 | Character 51 |
| 292 | Character 292 |
Run Code Online (Sandbox Code Playgroud)
我需要它以与原始逗号分隔值相同的顺序返回。所以在这个特定的例子中,我需要它返回......
| CharacterID | CharacterName |
--------------------------------------
| 30 | Character 30 |
| 29 | Character 29 |
| 1 | Character 1 |
| 292 | Character 292 |
| 51 | Character 51 |
Run Code Online (Sandbox Code Playgroud)
无论如何我可以具体说一些类似的话
SELECT * FROM Characters WHERE CharacterID IN (30, 29, 1, 292, 51)
ORDER BY (CharacterID, specifically in the order of (30, 29, 1, 292, 51))
Run Code Online (Sandbox Code Playgroud)
您可以使用FIELD()排序
SELECT * FROM Characters WHERE CharacterID IN (30, 29, 1, 292, 51)
ORDER BY FIELD(CharacterID, 30, 29, 1, 292, 51)
Run Code Online (Sandbox Code Playgroud)
FIELD() 是一个返回逗号分隔列表索引位置的函数
| 归档时间: |
|
| 查看次数: |
2612 次 |
| 最近记录: |