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…

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),如若是,继续下一步操作。如若不是,修改材质球属性,保留贴图为子材质,更改为标准材质。二、处理模型面数、点数问题。利用修…

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

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

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

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

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

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

Java 实现sha_Java实现SHA算法的方法详解

本文实例讲述了Java实现SHA算法的方法。分享给大家供大家参考,具体如下:一 简介安全散列算法固定长度摘要信息二 SHA算法SHA-1、SHA-2(SHA-224、SHA-256、SHA384、SHA-512)三 SHA算法实现package com.imooc.security.sha;import java.security.MessageDi…

linux mysql 脚本带参数_Linux下用SHELL脚本执行带输入输出参数的ORACLE存储过程并得到结果...

存储过程 myproc(in_num in number,out_num out number)sql脚本模板mysql.sql{var nret number;execute :nret : 0;--初始化call存储过程 myproc(in_num in number,out_num out number)sql脚本模板mysql.sql{var nret number;execute :nret : 0;--初始化call myproc(in_code,:n…

MySQL自动建立集合自动分片_1.mongodb初步使用总结

mongoDB2.6使用总结一、准备工作下载java驱动包驱动包下载地址:http://www.doczj.com/doc/3305bc20960590c69ec376c0.html/artifact/org.mongodb/mongo-java-driver mongoDB下载:http://www.doczj.com/doc/3305bc20960590c69ec376c0.html/在线api&#x…

springcloud 创建子父项目_idea搭建springCloud----搭建父子项目(二)

今天介绍一下 : idea 搭建父子项目父项目:springCloud_ht子项目:eureka_server(注册中心)1-1.新建父项目:1-2 起名称 springCloud_ht1-3 什么都不选,next1-4 :起项目名称:springCloud_ht1-5: 该目录为下图,但是项目为红…

db2 mysql sql server_连接数据库的方法(Oracle DB2 SQL Server MySQL...)

[java]代码库import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;/*** 连接各类数据库的方法*/public class DBConnector {/*** 获得数据库连接** param driverClassName* 连接数据库用到的驱动类的类名* param dbURL* 数据库的URL* para…

格子里输出 java_蓝桥杯-格子中输出-java

/* (程序头部注释开始)* 程序的版权和版本声明部分* Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生* All rights reserved.* 文件名称: 蓝桥杯赛题* 作 者: 彭俊豪* 完成日期: 2016 年 04月 01日* 版 本 号: …

基于java的rsa加密程序_RSA rsa加密程序,rsa java源码和 rsa的jsp Crypt_De algrithms 解密 238万源代码下载- www.pudn.com...

文件名称: RSA下载收藏√ [5 4 3 2 1 ]开发工具: Java文件大小: 169 KB上传时间: 2014-04-23下载次数: 0提 供 者: 姚双奇详细说明:rsa加密程序,rsa java源码和 rsa的jsp-rsa encryption program, rsa java source code and rsa in jsp文件列表(点击…

mysql 唯一约束 多字段_mysql多字段唯一约束

MySQL唯一约束(Unique Key)要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。在创建表时设置唯一约束在定义完列之后直接使用 UNIQUE 关键字指定唯一约束,语法规则如下: UNIQUE创建数据表 t…

java程序输出88的0 1矩阵_《剑指Offer》Java实现--顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里顺时针的顺序打印出每一个数字。测试用例如下图:测试数组思路分析这道题目并不难,关键在于边界控制!每一层遍历均从左上角开始,逐层往里完成遍历。Java代码实现/*** 由外向内顺时针打…

java程序表头出不来_JAVA SWING 表头不显示问题

Cats萌萌说明: JScrollPane 也是组件, 你需要把滚动面板也添加到你的布局里.由于你的布局是绝对布局setLayout(null); 那么你还需要为JScrollPane 设置大小和位置效果图参考代码1234567891011121314151617181920212223import javax.swing.*; public class FrameDemo extends JF…

php红色字体颜色,php生成文字颜色渐变 高级用法

项目描述:因为要做打印的产品价格贴,需要美观度,产品名字需要颜色渐变。这里非常感谢ThinkPHP 峰会4 里面的大神们。 [厦门]伍拾步 [上海]beyond [江苏]囧NC 【浙江】幸福 泰安sunny有兴趣的可以加入哦 群号43321338效果图展示$txt"祝群…

php 依赖注入框架,依赖注入模式(Dependency Injection)

依赖注入模式(Dependency Injection)由 学院君 创建于5年前, 最后更新于 10个月前版本号 #318333 views16 likes0 collects1、模式定义依赖注入(Dependency Injection)是控制反转(Inversion of Control)的一种实现方式。我们先来看看什么是控制反转。当调用者需要被调用者的协助…

java bit mask,【JDK源码剖析】Java数值类型的包装类

概述Java是一种强类型语言,必须为每一种变量声明一种类型.在Java中一共有8种基本类型(primitive type),其中有4中整型,2种浮点类型,1中用于表示Unicode编码的字符单元的字符类型char和一种用于真值表示的boolean类型之前曾写过几篇博文这些博文大都是在JVM或者计算机组成原理相…

_Linux 服务器存在某进程 CPU 过高如何追溯其问题根源?

问题描述:在本人运维的一个省级平台系统中,最近有用户反应系统很卡一直转圈圈. 经初步核查发现某web服务器节点存在JAVA进程cpu占比超过100%的情况。为了不影响用户使用,暂时只能采取简单粗暴的方法"重启服务器"。这其中有如下2个疑…