MySQL按所选表的数组值排序

Posted

技术标签:

【中文标题】MySQL按所选表的数组值排序【英文标题】:MySQL sort order by array value of selected table 【发布时间】: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

【问题讨论】:

【参考方案1】:

你可以使用locate():

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

aFieldFromTheTableIAmSelecting 内不能有空格。

【讨论】:

【参考方案2】:

你可以试试find_in_set():

ORDER BY find_in_set(id, aFieldFromTheTableIAmSelecting)

【讨论】:

以上是关于MySQL按所选表的数组值排序的主要内容,如果未能解决你的问题,请参考以下文章

是否按时间字段(其中 auto_now_add=True)对表进行排序,相当于按所述表的主键 ID 对表进行排序?

usort — 使用用户自定义的比较函数对数组中的值进行排序

在DAX / Power BI中对值进行排序

v-for列表过滤和排序

使用 jQuery 根据值对 JSON 数组进行排序

唯一值和匹配的数组