我有一个表格,其中版本被列为一列。版本详细信息如下。
版:
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子字符串作为输入时获取最新版本。
最佳答案
对于您的特定示例:
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
子句可确保开头字符相同。关于mysql - 从表中按顺序获取版本字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55457018/