网站建设性价比高,关于网站建设的简历模板,好兄弟资源网,有了云服务器怎么建设网站概述今天主要介绍一个MySQL数据库版本号排序问题#xff0c;一起来看看吧~需求按版本号排序#xff0c;版本号字段为字符类型#xff0c;其中1.2.10应大于1.2.9#xff0c;但mysql数据库会认为1.2.9大于1.2.1正确的版本号应该是 1.3.0 大于 1.2.231.2.10 大于 1.2.9实现sql…概述今天主要介绍一个MySQL数据库版本号排序问题一起来看看吧~需求按版本号排序版本号字段为字符类型其中1.2.10应大于1.2.9但mysql数据库会认为1.2.9大于1.2.1正确的版本号应该是 1.3.0 大于 1.2.231.2.10 大于 1.2.9实现sql(错误示范)这里以符号.分隔并取各个值后组合排序但仍存在问题SELECTversion FROMlcp_app_version ORDER BYconcat(substring_index( version, ., 1 ),substring_index( substring_index( version, ., 2 ), .,- 1 ),substring_index( version, .,- 1 ) ) DESC;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 000ELSE SUBSTRING_INDEX( SUBSTRING_INDEX( version, ., 3 ), ., - 1 ) END , 3, 0 ) ) as vvfrom lcp_app_version order by vv desc;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_version0 desc,second_version0 desc,third_version0 desc后面会分享更多devops和DBA方面内容感兴趣的朋友可以关注下