【问题标题】:MySQL sort order by array value of selected tableMySQL按所选表的数组值排序
【发布时间】:2019-09-17 08:28:00
【问题描述】:

例如

ORDER BY field(id, 9, 1, 4)

我可以在 9 点、1 点、4 点之前订购。

是否也可以通过我选择的同一张表的逗号分隔字符串进行排序?

我试过了

ORDER BY field(id, aFieldFromTheTableIAmSelecting)

aFieldFromTheTableIAmSelecting 是“9,1,4”

但这不起作用。

这个问题类似于MySQL sort order by array value

【问题讨论】:

    标签: mysql


    【解决方案1】:

    你可以使用locate():

    ORDER BY locate(concat(',', id, ','), concat(',', aFieldFromTheTableIAmSelecting, ','))
    

    aFieldFromTheTableIAmSelecting 内不能有空格。

    【讨论】:

      【解决方案2】:

      你可以试试find_in_set():

      ORDER BY find_in_set(id, aFieldFromTheTableIAmSelecting)
      

      【讨论】:

        猜你喜欢
        • 2011-12-24
        • 2022-01-15
        • 1970-01-01
        • 2016-01-08
        • 2012-11-03
        • 2014-07-24
        • 1970-01-01
        • 1970-01-01
        • 2020-05-08
        相关资源
        最近更新 更多