MySQL - 按顺序返回值

时间:2016-01-17 16:46:54

标签: mysql

在MySQL中,我使用SELECT子句运行了很多IN语句。有时我希望看到输出表按照我在IN子句中使用的值的顺序排序,而不是alpha / numeric。

如果我跑了

SELECT id FROM x
WHERE id IN ('1', '3', '2', '0')

我希望输出1, 3, 2, 0,而不是0, 1, 2, 3

有没有办法实现这个目标?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用以下查询,您应该得到您想要的内容:

SELECT id FROM x WHERE id IN ('1', '3', '2', '0') ORDER BY FIELD(id, '1', '3', '2', '0')

关于FIELD()的MySQL规范:

  

返回str1,str2,str3,...列表中str的索引(位置)。如果未找到str,则返回0   http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_field