MySQL排序字符串排序,数字优先

avatar 2021年12月17日18:04:46 6 1670 views
博主分享免费Java教学视频,B站账号:Java刘哥

最近太忙了,遇到很多问题都没有时间整理,准备今明两天抽空一起记录下

问题描述

今天先记录一个昨天遇到的排序问题

先看问题,文件名种带有数字开头的,排序是按照第一个字符排序的,即

0、1、10、11

正常时 0、1、2、3 这种

+ 0 排序

网上搜了可以通过 +0 的方式按照数字排序

即 改成 ORDER BY CAST(A.file_name  AS DECIMAL) + 0 ASC;

能解决部分,排序新的结果如下

比之前稍微好点点,依然不理想

 

正则和+0组合排序

上面不理想,主要是非数字的排序到前面去了,而且0夹在了中间,不太理想

解决办法,是把非数字排序到后面,然后再按照数字顺序排序

ORDER BY A.file_name regexp "^[0-9]" desc ,  CAST(A.file_name  AS DECIMAL) + 0 ASC

看效果,完美!

 

 

 

  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0