业务背景:
获取小于等于当前版本的最新版本数据
发现在mysql中比较版本字符串有个坑:select "5.1.3">"5.1.24"
结果会是1,因为是按位比较,3比2大。。。。
怎么解决呢,stackoverflow上种方法:
传送门
条件设定:版本格式为 x.x.x (只有三组版本号,或组数确定)
获取版本范围
取每组版本号并向前补0至N位(比方5位、10位),最后拼接好在进行比较
1 | -- 获取小于等于12.0.2版本的最新数据 |
获取版本顺序
如果只是排序,且版本号都是数字,可以采用每组版本号转数字,在排序
1 | SELECT Version |
如有疑问,请文末留言交流或邮件:newbvirgil@gmail.com 本文链接 : https://newbmiao.github.io/2017/12/08/mysql-compare-version-string.html