首页 > 解决方案 > MySQL查询“in(a,b,c)”,如何以相同的顺序(a,b然后c)返回元素?

问题描述

通过 ID 以精确的顺​​序在表格中搜索精确元素,我该如何使用这种请求:

select * from TABLE where ID in (1, 7, 2)

按我要求的顺序对元素进行排序(然后ID = 1)?如下所示:ID = 7ID = 2

TABLE
ID | field1 | ...
1  | value  | ...
7  | value  | ...
2  | value  | ...

当然,所请求的顺序不是其中一个字段的自然顺序(无法order by field获得结果)。

标签: mysql

解决方案


使用FIELDS如下

select * from TABLE where ID in (1, 7, 2) ORDER BY FIELD(ID, 1, 7, 2)

推荐阅读