create temporary table T (a varchar(10));insert into T (a) values ('88A242'),('88A106'),('88A109'),('92A129'),('92A068'),('2000A291'),('2000A216'),('2014A063'),('2014A315');select * from T order by lpad(a, 10, '0');a 88A106 88A109 88A242 92A068 92A129 2000A216 2000A291 2014A063 2014A315
$s='88A242,88A106,88A109,92A129,92A068,2000A291,2000A216,2014A063,2014A315';
$arr=explode(',',$s);
natsort($arr);echo "<pre>";
print_r($arr);
echo "</pre>";
$str='88A242,88A106,88A109,92A129,92A068,2000A291,2000A216,2014A063,2014A315';
$str1=str_replace('A','.',$str);
$arr=explode(',',$str1);
sort($arr,SORT_NUMERIC);
$str2=implode(',',$arr);
$str3=str_replace('.','A',$str2);
echo $str3;
88A106,88A109,88A242,92A068,92A129,2000A216,2000A291,2014A063,2014A315
88A106
88A109
88A242
92A068
92A129
2000A216
2000A291
2014A063
2014A315
至于怎么计算hash值,查查,不难。
可以啦,求解釋,lpad(a, 10, '0')
返回字符串 str, 其左边由字符串padstr 填补到len 字符长度。假如str 的长度大于len, 则返回值被缩短至 len 字符。