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 对表进行排序?