在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
。
有没有办法实现这个目标?
谢谢!
答案 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