mysql按照自定义(指定顺序)排序的方法实例

作者:Quader 时间:2024-01-14 12:33:46 

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

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

如下图中表;

mysql按照自定义(指定顺序)排序的方法实例

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

mysql按照自定义(指定顺序)排序的方法实例

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

mysql按照自定义(指定顺序)排序的方法实例

二、解决方案

1:自定义排序实现

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

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

mysql按照自定义(指定顺序)排序的方法实例

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

MySQL中的field()函数,可以用来对SQL中查询结果集进行指定顺序排序。

field(str,str1,str2,str3…)字段str按照字符串str1,str2,str3…的顺序返回查询到的结果集。如果表中str字段值不存在于str1,str2,str3中的记录,放在结果集最前面返回。

mysql按照自定义(指定顺序)排序的方法实例

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

还可以利用locate函数来实现排序;

locate(subStr,string) :判断字符串(string)中是否包含另一个字符串(subStr),函数返回的是subStr在string中出现的位置;

mysql按照自定义(指定顺序)排序的方法实例

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

INSTR(STR,SUBSTR) 在一个字符串(STR)中搜索指定的字符(SUBSTR),返回发现指定的字符的位置(INDEX);

同locate函数大致一样,不过函数内参数一个在前,一个在后;

mysql按照自定义(指定顺序)排序的方法实例

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

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

首先,需要在数据字典表中建立相应的数据字典项并维护顺序;

mysql按照自定义(指定顺序)排序的方法实例

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

mysql按照自定义(指定顺序)排序的方法实例

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

mysql按照自定义(指定顺序)排序的方法实例

来源:https://blog.csdn.net/quader/article/details/122761023

标签:mysql,自定义,排序
0
投稿

猜你喜欢

  • 关于MySQL编码问题的经验总结

    2007-08-23 16:10:00
  • PyQt5实现拖放功能

    2023-08-06 11:52:56
  • Python实现句子翻译功能

    2023-11-20 20:07:28
  • 将pytorch转成longtensor的简单方法

    2021-10-25 02:42:56
  • ASP使用wsImage组件给图片加水印代码

    2010-06-09 19:23:00
  • JS组件Bootstrap实现弹出框和提示框效果代码

    2023-07-02 05:25:13
  • python中使用urllib2伪造HTTP报头的2个方法

    2022-10-19 07:05:06
  • 品牌的统一体验

    2010-05-19 13:08:00
  • PHP实现页面静态化的超简单方法

    2023-11-18 17:13:24
  • 网页设计十大诀窍

    2007-10-19 13:03:00
  • 详解.NET数据库连接池

    2024-01-20 16:05:59
  • 微信小程序中使用wxss加载图片并实现动画效果

    2024-04-29 13:15:27
  • 一些CSS样式书写技巧

    2007-10-16 12:57:00
  • 跟老齐学Python之for循环语句

    2021-12-22 04:52:50
  • Python实现TCP协议下的端口映射功能的脚本程序示例

    2021-07-26 13:59:01
  • 用Python的SimPy库简化复杂的编程模型的介绍

    2023-06-19 16:55:45
  • 用XML和XSL来生成动态页面

    2008-09-04 10:35:00
  • numpy中的log和ln函数解读

    2023-06-14 22:46:40
  • Django Rest framework解析器和渲染器详解

    2021-06-30 20:46:25
  • MySQL数据库实验实现简单数据库应用系统设计

    2024-01-27 04:49:34
  • asp之家 网络编程 m.aspxhome.com