mysql按照指定顺序排序(自定义排序)

  • 一、mysql中实现指定排序需求
  • 二、解决方案
    • 1:自定义排序实现
      • 01. case when 转换实现自定义排序;
      • 02:mysql排序函数filed 实现自定义排序(推荐);
      • 03:函数locate 实现自定义排序;
      • 04:函数lnstr 实现自定义排序;
      • 05:利用数据字典实现自定义排序;

一、mysql中实现指定排序需求

一般情况下,我们排序都是直接利用 order by 字段 asc/desc;但是如果要排序的字段数据格式并不能直接实现,或者说我们需要指定的顺序且没有什么规律,简单的order by字段就实现不了;
如下图中表;

我们需要按照中国银行,建设银行,工商银行顺序排序;直接使用order by 字段并不能得到我们想要的顺序

同样,对于类型我们想要按正回购,买入,卖出这样的顺序去排序,简单的order by 字段也不能实现;

二、解决方案

1:自定义排序实现

01. case when 转换实现自定义排序;

使用case when 将字段中的中国银行,建设银行,工商银行,转换为1,2,3,这样在我们再使用order by实现数据的自定义重排。

02:mysql排序函数filed 实现自定义排序(推荐);

MySQL中的field()函数,可以用来对SQL中查询结果集进行指定顺序排序。
field(str,str1,str2,str3…)字段str按照字符串str1,str2,str3…的顺序返回查询到的结果集。如果表中str字段值不存在于str1,str2,str3中的记录,放在结果集最前面返回。

03:函数locate 实现自定义排序;

还可以利用locate函数来实现排序;
locate(subStr,string) :判断字符串(string)中是否包含另一个字符串(subStr),函数返回的是subStr在string中出现的位置;

04:函数lnstr 实现自定义排序;

INSTR(STR,SUBSTR) 在一个字符串(STR)中搜索指定的字符(SUBSTR),返回发现指定的字符的位置(INDEX);
同locate函数大致一样,不过函数内参数一个在前,一个在后;

05:利用数据字典实现自定义排序;

对于部分相对比较固定的字段,一般可以建立数据字典项来,不仅方便返回给前端做下拉等,也方便后期添加和修改的维护,也可以在数据字典中给与对应的顺序;主要可以方便后期调整和维护;只需要修改数据字典中的排序即可;
首先,需要在数据字典表中建立相应的数据字典项并维护顺序;

其次,存储时直接存储对应的数据字典值就可以了,然后关联查询,利用数据字典顺序排序;即可;

如果顺序有变,或者要添加新的类型,也只需要在数据字典中维护即可,不需要修改sql,扩展性较好(有需要甚至可以给与数据字典的配置页面专门维护);



仅作记录,方便后续查阅,如有错误还望

mysql实现按照自定义(指定顺序)排序相关推荐

  1. SQL Server中使用自定义指定顺序排序

    SQL Server中使用自定义指定顺序排序 原文:SQL Server中使用自定义指定顺序排序 比如需要对SQL表中的字段NAME进行如下的排序: 张三(Z) 李四(L) 王五(W) 赵六(Z) 如 ...

  2. SQL学习之使用order by 按照指定顺序排序或自定义顺序排序

    我们通常需要根据客户需求对于查询出来的结果给客户提供自定义的排序方式,那么我们通常sql需要实现方式都有哪些,参考更多资料总结如下(不完善的和错误望大家指出): 一.如果我们只是对于在某个程序中的应用 ...

  3. order by 按照指定顺序排序或自定义顺序排序

    我们通常需要根据客户需求对于查询出来的结果给客户提供自定义的排序方式,那么我们通常sql需要实现方式都有哪些,参考更多资料总结如下(不完善的和错误望大家指出): 一.如果我们只是对于在某个程序中的应用 ...

  4. 使用order by 按照指定顺序排序或自定义顺序排序

    我们通常需要根据客户需求对于查询出来的结果给客户提供自定义的排序方式,那么我们通常sql需要实现方式都有哪些,参考更多资料总结如下(不完善的和错误望大家指出): 一.如果我们只是对于在某个程序中的应用 ...

  5. DataFrame按某种指定顺序排序

    DataFrame按某种指定顺序排序 创建待排序DataFrame并指定排序列表 对DataFrame排序 创建待排序DataFrame并指定排序列表 import pandas as pd impo ...

  6. 【oracle】oracle按照某字段指定顺序排序

    目录 方案一.通过order by instr实现指定顺序排序 方案二:通过order by decode 补充:通过拼音.比划.部首排序方法 使用拼音排序 使用部首排序 使用笔画数排序 在做报表展现 ...

  7. DB2按照字段的指定顺序排序

    我们经常会遇到这样一个问题,某个列的可能值为 1, 2, 3.现在需要按照 2, 1, 3 的顺序排序,该怎么办呢? MySql中可以: select * from my_table where co ...

  8. SQL学习之使用order by 依照指定顺序排序或自己定义顺序排序

    我们通常须要依据客户需求对于查询出来的结果给客户提供自己定义的排序方式,那么我们通常sql须要实现方式都有哪些,參考很多其它资料总结例如以下(不完好的和错误望大家指出): 一.假设我们仅仅是对于在某个 ...

  9. PostgreSQL 按指定顺序排序

    因为PostgreSql没有order by field 所以按照指定的顺序排序就没有这么简单了,可以使用case when then进行排序 示例一 SELECT stage, pln_status ...

  10. python列表按照指定顺序排序-pandas中的DataFrame按指定顺序输出所有列的方法

    问题: 输出新建的DataFrame对象时,DataFrame中各列的显示顺序和DataFrame定义中的顺序不一致. 例如: import pandas as pd grades = [48,99, ...

最新文章

  1. nginx+fastcgi实现动静分离架构
  2. 033_jdbc-mysql数据库连接池
  3. 读《大道至简-- 第二章 是懒人造就了方法》 有感
  4. C语言检查一个字符串是否为另一个字符串的子字符串的算法(附完整源码)
  5. shell编程中特殊字符的问题总结
  6. Nginx记录客户端POST过来的具体信息
  7. flask mysql项目模板渲染_Flask系列(二) 模板 templates
  8. javascript实现窗口随着鼠标移动且移动路径重现
  9. PbootCMS V1.1.4 正式发布
  10. linux十大实用工具,10大好用的Linux实用工具推荐
  11. TransE算法原理与案例
  12. 翻遍知乎1000多个高赞回答,我找到了这7本计算机圣经
  13. Vuejs中字符串判空处理--如何判断字符串是否为空或不为空
  14. matlab 凸多边形,matlab练习程序(多边形顶点凹凸性)
  15. 核磁谱图分析步骤_核磁共振氢谱 解析图谱的步骤
  16. 自主研发国产高端企业云服务器,浪潮商用机器如何聚沙成塔?
  17. FreeBSD常用命令 110 条
  18. 天原笔记(5) 天气形势及天气要素的预报
  19. 【WebRTC】回声抵消(aec、aecm)算法简介
  20. 微信小程序文字超出显示省略号

热门文章

  1. MSP430之如何降低系统功耗1
  2. 如何在64位win10系统下通过virtualbox虚拟机安装苹果macOS 10.12
  3. rnqoj-99-配置魔药-dp
  4. 【Codecs系列】X265编码器(七):多线程和wpp模块分析
  5. Python财务分析-Pandas复制Google Trends
  6. mate40pro的曲面屏设计华而不实
  7. memc-nginx-module模块和php-fpm访问memcache性能比较
  8. 背景图片宽高自适应实现
  9. 关于esxi6.5开启虚拟机提示文件被锁定,无法开机
  10. 中文垂直搜索引擎、行业搜索引擎大全(最新计137家) (转贴)