mysql去掉小数点多余0_mysql数据库个性化需求:版本号排序

概述

今天主要介绍一个MySQL数据库版本号排序问题,一起来看看吧~


需求

按版本号排序,版本号字段为字符类型,其中1.2.10应大于1.2.9,但mysql数据库会认为1.2.9大于1.2.1

正确的版本号应该是

1.3.0 大于 1.2.23

1.2.10 大于 1.2.9

ce8d60531ebb14915a65a578788669c8.png

实现sql(错误示范)

这里以符号"."分隔并取各个值后组合排序,但仍存在问题

SELECTversion FROMlcp_app_version ORDER BYconcat(substring_index( version, '.', 1 ),substring_index( substring_index( version, '.', 2 ), '.',- 1 ),substring_index( version, '.',- 1 ) ) DESC;
f4cfa8afed0289f81d9f40ad850049de.png

SQL解决方案一

一般版本号排序,思路是去掉小数点,右边补零防止错误填写,类型转换为数字然后排序

select version ,CONCAT(LPAD( SUBSTRING_INDEX( SUBSTRING_INDEX( version, '.', 1 ), '.', - 1 ), 3, '0' ),LPAD( SUBSTRING_INDEX( SUBSTRING_INDEX( version, '.', 2 ), '.', - 1 ), 3, '0' ),LPAD(CASE WHEN LENGTH(SUBSTRING_INDEX( version, '.', 3 ))=LENGTH(SUBSTRING_INDEX( version, '.', 2 ))THEN '000'ELSE SUBSTRING_INDEX( SUBSTRING_INDEX( version, '.', 3 ), '.', - 1 ) END , 3, '0' ) ) as vvfrom lcp_app_version  order by vv desc;
cf4dd765180c4e8c3d66f49cc72b9a92.png

SQL解决方案二

以小数点分隔,取各个值,然后逐步按每个值排序

SELECTversion,SUBSTRING_INDEX(version,'.',1) AS first_version,SUBSTRING_INDEX(SUBSTRING_INDEX(version,'.',-2),'.',1) AS second_version,SUBSTRING_INDEX(version,'.',-1) AS third_versionFROMlcp_app_versionorder BY first_version+0 desc,second_version+0 desc,third_version+0 desc
0a7421977f1c87465996e6c20b8e8ff2.png

后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!

2d874e4dbef4d180f90006e37f4d52f7.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql语句在哪编写_mysql常见问题七:编写sql语句

一、删除除了学号字段以外,其它字段都相同的冗余记录,只保留一条!(也就是要删除凤姐和田七中一条重复数据只留一条)要求结果数据:原始数据:CREATE TABLEtbl_students (idint NOT NULL,namevarchar(10) DEFAULT NULL,sa…

lamp mysql5.0_CentOS 5/6 LAMP(Apache MySQL PHP)一键安装脚本

适用系统:CentOS-5 (32bit/64bit)CentOS-6 (32bit/64bit)安装了什么:1、Apache 2.2.202、MySQL 5.0.923、PHP 5.2.174、ZendOptimizer 3.3.95、eAccelerator 0.9.6.16、phpmyadmin 3.3.47、vsftpd 2.3.4实现了什么功能1、一键配置LAMP经典环境2、自动删除…

mysql safe file priv_MYSQL的secure_file_priv参数怎么用?

MYSQL的secure_file_priv参数怎么用?发布时间:2020-06-01 14:03:22来源:亿速云阅读:639作者:LeahMYSQL的secure_file_priv参数怎么用?针对这个问题,今天小编总结这篇有关secure_file_priv的文章…

mysql stdistance_postgis的geography_columns和geometry_columns有什么区别

1、先说说Sql Server中geometry和geography的区别:geometry:planar 平面坐标系【supported by SQL Server conforms to the Open Geospatial Consortium (OGC) Simple Features for SQL Specification version 1.1.0.】geography: terrest…

python依赖平台吗_在Python中创建快速循环最依赖于平台和pythonversion的方法是什么?...

我正在用Python编写一个科学应用程序,其核心是一个处理器密集型的循环。我希望尽可能地优化这一点,将给最终用户带来的不便降到最低,他们可能会将其作为Python脚本的未编译集合,并将使用Windows、Mac和(主要是Ubuntu)Linux。在它目…

sum()转字符串_Python字符串与内置函数

字符串创建变量来保存字符串 字符串可以通过单、双、三引号创建字符串message "Hello,world"#变量mseeage,值为hello,worldprint(message)输出结果:Hello,worldPython3,有3种数值类型分别为:int(整形)#创建变量为a,值为496a 496 #type查看类…

obj文件编辑软件_工程动画制作 | MAX文件导出obj、fbx格式在Bentley软件中应用

一、利用3dmax打开max模型,利用材质球吸取材质。看材质是否为标准材质(standard),如若是,继续下一步操作。如若不是,修改材质球属性,保留贴图为子材质,更改为标准材质。二、处理模型面数、点数问题。利用修…

mysql数据库用户简单分析_如何用SQLyog来分析MySQL数据库详解

用SQLyog来分析MySQL数据库:SOLyog的下载、安装以及使用很简单。我去了相关网站下载,它只有384K字节大小。它把两个文件(一个可执行文件.exe和一个动态链接库文件.dll)安装到C:\Program Files\SQLyog路径下。然后运行可执行文件。安装后没有必要再访问该…

python 安装pandas 权限不够_详解Python学习之安装pandas

一、python pip的安装与使用1、pip 是 python 包管理工具,该工具提供了对python 包的查找、下载、安装、卸载的功能。目前如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具。python 2.7.9 或 python 3.4 以上版本都自带 pip 工具。pip 官…

关于mysql正确的联合索引_关于mysql联合索引

1234567CREATE TABLE uniontest (idint(11)NOT NULL AUTO_INCREMENT,menunamevarchar(50)DEFAULT NULL,urlvarchar(200)DEFAULT NULL,PRIMARY KEY (id),UNIQUE KEY u_index (menuname,url)) ENGINEInnoDB AUTO_INCREMENT5DEFAULT CHARSETutf8先建立数据库,把menunam…

python socket出现ip已经使用_Python:只接受特定的IP(socket)

我有一个由java客户机和python服务器组成的程序。python服务器可以接收多个连接,客户端将尝试每隔17秒连接到服务器。我的问题:服务器应该只接受一个用户之前输入的IP的连接。在HOST 0.0.0.0PORT 1979s socket.socket(socket.AF_INET, socket.SOCK_ST…

java 变量初始化_浅谈Java变量的初始化顺序详解

规则1(无继承情况下):对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器证明代码:public class InitialOrderTest {// 静态变量public static String stat…

java的类是什么_java类是什么意思

java类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。举一个例子说明下类,比如Person(人)就是一个类&#xff0…

loadrunner 录制java_LoadRunner脚本录制流程

1.1 录制流程协议选择→设置录制选项→开始录制→插入命令→停止录制→回放验证1.2 协议选择单协议or多协议C/S架构使用的协议可能比较特殊,若不确定可询问开发人员。B/S架构使用的协议基本都是HTTP协议。1.3 录制选项1、录制准备事项Application type:可…

phaser java_【Java并发编程实战】-----“J.U.C”:Phaser

Phaser由java7中推出,是Java SE 7中新增的一个使用同步工具,在功能上面它与CyclicBarrier、CountDownLatch有些重叠,但是它提供了更加灵活、强大的用法。CyclicBarrier,允许一组线程互相等待,直到到达某个公共屏障点。…

java 时间类 joda_Java日期类Joda-time的使用及性能对比

在产品的性能优化过程中发现JDK的日期类Calendar使用起来太慢,于是找了替代方案,惊喜的发现Joda-time类库,提供的API功能丰富,关键的是性能要比JDK的Calendar要高出许多。1)日期的实例化//构造方法有很多,对比Calendar类&#xff…

spark sql hbase java_Spark 读写 HBase 的两种方式(RDD、DataFrame)

使用 saveAsHadoopDataset 写入数据import org.apache.hadoop.hbase.{HBaseConfiguration, HTableDescriptor, TableName}import org.apache.hadoop.hbase.client.{HBaseAdmin, Put, Result}import org.apache.hadoop.hbase.io.ImmutableBytesWritableimport org.apache.hadoop…

java 双重检查锁 有序_Java中的双重检查锁(double checked locking)

1 public classSingleton {2 private staticSingleton uniqueSingleton;34 privateSingleton() {5 }67 publicSingleton getInstance() {8 if (null uniqueSingleton) {9 uniqueSingleton newSingleton();10 }11 returnuniqueSingleton;12 }13 }在多线程的情况下,这…

centos 7 nginx hhvm mysql_CentOS 7 编译安装 HHVM 3.4.1

博客彻底迁移到了DigitalOcean上,无奈囊中羞涩,只能开个512MB内存的Droplet。。。只不过,小内存也可以玩出花样。之前就一直想尝试用一下HHVM,无奈编译实在是太麻烦,一直偷懒没使用。这篇文章就用来记录期间编译安装的…

java 耦合度_Java第三十八天,Spring框架系列,使用工厂模式降低程序耦合度

一、什么是耦合程序之间的依赖关系:①类之间的依赖②方法之间的依赖注意:不可能完全的消除依赖关系,而只能是降低程序之间的依赖关系二、解耦降低程序之间的依赖关系:1.解决类之间的依赖关系:①通过读取配置文件来获取…