【问题标题】:Mysql forcibly order by exact valueMysql 强制按精确值排序
【发布时间】:2017-12-05 08:14:41
【问题描述】:

在 mysql 请求方面需要帮助。

我提出一个请求,我想按字段 ID 排序结果。

例如ID:1,2,3,4,5,6,7,8,9

但我需要这样排序:6,3,1,2,4,5,7,8,9

mysql中是否有任何解决方案强制将ID=6放在第1位,ID=3放在第2位...?

或者我想要不可能的)

【问题讨论】:

    标签: mysql sql-order-by


    【解决方案1】:

    ORDER BY 子句中使用 CASE 表达式。

    查询

    select * from `your_table_name`
    order by case `id` when 6 then 1 when 3 then 2 else 3 end, `id`;
    

    Find a demo here

    【讨论】:

      【解决方案2】:

      用途:

      ORDER BY FIELD(id, 6,3,1,2,4,5,7,8,9)
      

      FIELD 函数返回第一个值在剩余列表中的位置。

      【讨论】:

        猜你喜欢
        • 2016-01-08
        • 2019-04-07
        • 1970-01-01
        • 2021-12-17
        • 2010-09-05
        • 1970-01-01
        • 2011-12-24
        • 1970-01-01
        • 2014-09-06
        相关资源
        最近更新 更多