【问题标题】:MySQL query "in (a, b, c)", how to return elements in this same order (a, b then c)? [duplicate]MySQL查询“in(a,b,c)”,如何以相同的顺序(a,b然后c)返回元素? [复制]
【发布时间】:2018-06-01 13:21:23
【问题描述】:

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

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

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

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

当然,鉴于请求的顺序不是其中一个字段的自然顺序(不能通过order by field 获得结果)。

【问题讨论】:

  • 试试ORDER BY CASE ID WHEN 1 THEN 1 WHEN 7 THEN 2 WHEN 2 THEN 3 END

标签: mysql


【解决方案1】:

如下使用FIELDS

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 2022-06-14
    • 2011-08-01
    相关资源
    最近更新 更多