我有一个表格,其中版本被列为一列。版本详细信息如下。
版本:
11.1R1.8
11.1R1.80
11.1R1.9
11.1R1.1
11.1R1.10
11.1R1.2
我需要编写一个查询以有序地获取此查询。我尝试使用如下所示的like命令,但它的获取顺序与上面相同。
select * from <table> where version like("11.1R1%");
对此进行任何输入都会有所帮助。确切的要求是在提供11.1R1子字符串作为输入时获取最新版本。
答案 0 :(得分:0)
对于您的特定示例:
select *
from <table>
where version like('11.1R1%')
order by substring_index(version, '.', -1) + 0 desc
limit 1;
where
确保R
之前的部分和之后的主要版本相同。
您也可以将其表示为:
order by length(version) desc, version desc
这不会将版本组件转换为数字。再次适用于您的情况,因为where
子句可确保开头字符相同。