我有一个像下面这样的表,id是主键
ID Name
1 a
2 b
3 c
4 d
5 e
Run Code Online (Sandbox Code Playgroud)
并有如下查询.此查询是在用户输入选项的php文件中创建的.
select name from table where id in (1,5,3)
Run Code Online (Sandbox Code Playgroud)
我得到结果("a","c","e"),我猜这是正常的,因为默认的主键排序顺序.但是我希望结果按照与"in"子句相同的顺序排序.所以我希望返回值为("a","e","c").有没有办法在mysql中获取它.
你可以简单地使用FIELD():
select name from TableName where id in (1,5,3)
ORDER BY field(id,1,5,3)
Run Code Online (Sandbox Code Playgroud)
结果:
NAME
a
e
c
Run Code Online (Sandbox Code Playgroud)
在SQL Fiddle中查看结果.