mysql 有一列:area_id ,为数字和下划线构成,查询记录时我想依据它排序假如area_id如下:
0
0_1
0_3
0_2
2
2_1
2_1_1
2_1_3
2_1_2
1
1_1
1_1_2
1_1_1 我想始其变成正常的顺序:
0
0_1
0_2
0_3
1
1_1
1_1_1
1_1_2
2
2_1
2_1_1
2_1_2
2_1_3我用ORDER BY abs(area_id)只能对下划线前的数字排序,对第二个数字就失效了,怎么办?请同仁点拔一下,给一句查询代码。谢谢!
0
0_1
0_3
0_2
2
2_1
2_1_1
2_1_3
2_1_2
1
1_1
1_1_2
1_1_1 我想始其变成正常的顺序:
0
0_1
0_2
0_3
1
1_1
1_1_1
1_1_2
2
2_1
2_1_1
2_1_2
2_1_3我用ORDER BY abs(area_id)只能对下划线前的数字排序,对第二个数字就失效了,怎么办?请同仁点拔一下,给一句查询代码。谢谢!
$a=array('0','0_1','0_3','0_2','2','2_1','2_1_1','2_1_3','2_1_2','1','1_1','1_1_2','1_1_1');
sort($a);
print_r($a);
?>
直接用sort就可以了
是varchar类型,但不行,会出现:
0_X_X
1_X_X
12_X_X //这里10位数的提前了
2_X_X
怎么肯能是这样 是varchar类型就用升序排列就行了的,你把情况将清楚点
那就用php排序吧,sort也存在 大于10的时候排序混乱现象。foreach 吧
mysql字符串按数值排序方法将字段*1或者加0 可以变成数值例如:一 select * from table where 1 order by id+0 desc 按id对应的数值降排二 select * from table where 1 order by id*1 asc 按id对应的数值升排