MySQL - SELECT ... WHERE id IN(..) - 正确的顺序

Cip*_*anu 27 mysql

我有以下查询

SELECT * FROM table WHERE id IN (5,4,3,1,6)
Run Code Online (Sandbox Code Playgroud)

我想按照"id in .."中指定的顺序检索元素,这意味着它应该返回:

5 ....
4 ....
3 ....
1 ....
6 ....
Run Code Online (Sandbox Code Playgroud)

任何想法如何做到这一点?

Fra*_*ens 57

使用FIELD():

SELECT * FROM table WHERE id IN (5,4,3,1,6) ORDER BY FIELD(id, 5,4,3,1,6);
Run Code Online (Sandbox Code Playgroud)


del*_*ist 25

SELECT * FROM table WHERE id IN (5,4,3,1,6) ORDER BY FIELD (id, 5,4,3,1,6)
Run Code Online (Sandbox Code Playgroud)