针对mysql无法正确比较0.0.0类型的版本号,有多个解决方案,如果是单文件可以根据时间判断最新,多文件可以加一个字段is_new;
也可以查出后比较版本大小,下面是php方法
1 <?php 2 $array=array('1.0.1','1.1.0','1.2.6','2.1.1','1.5.16','3.1.0','2.2.3','2.2.5','2.2.4','1.5.1','1.9.31'); 3 $newarray = array(); 4 foreach ($array as $value) { 5 $newarray[] = explode('.',$value); 6 } 7 8 $max = $newarray[0][0]; 9 foreach ($newarray as $v){ 10 if($v[0]>$max){ 11 $max = $v[0]; 12 } 13 } 14 15 foreach ($newarray as $k=> $vl){ 16 if($vl[0] != $max){ 17 unset($newarray[$k]); 18 } 19 } 20 21 $max = $newarray[0][1]; 22 foreach ($newarray as $v){ 23 if($v[1]>$max){ 24 $max = $v[1]; 25 } 26 } 27 28 foreach ($newarray as $k=> $vl){ 29 if($vl[1] != $max){ 30 unset($newarray[$k]); 31 } 32 } 33 34 $max = $newarray[0][2]; 35 foreach ($newarray as $k=> $v){ 36 if($v[2]>$max){ 37 $max = $v[2]; 38 } 39 } 40 41 foreach ($newarray as $k=> $vl){ 42 if($vl[2] != $max){ 43 unset($newarray[$k]); 44 } 45 } 46 47 foreach ($newarray as $ve) { 48 $ay = implode('.',$ve); 49 } 50 var_dump($ay);