Mysql使用orderby自定义排序

1、使用case when

例:这里我想根据name为小明,小红,小华来排序

order by
  case name
  when '小明' then 1
  when '小红' then 2
  when '小华' then 3
  end

2、使用field函数

例:这里我想根据name为小明,小红,小华来排序

order by
  field(name,'小明','小红','小华')

3、函数locate实现自定义排序

使用locate其实就是根据name在字符串”小明,小红,小华”的下标来进行排序

例:这里我想根据name为小明,小红,小华来排序

order by locate(name,'小明,小红,小华')

4、函数lnstr实现自定义排序

使用instr其实就是根据instr在字符串”小明,小红,小华”的下标来进行排序

例:这里我想根据name为小明,小红,小华来排序

order by instr('小明,小红,小华',name)

其实原理和locate一样

5、根据字典来进行排序

使用字典表记录字段的顺序,然后连表获取字段的顺序后对该字段排序


已发布

分类

,

来自

标签:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注