在一个表格中,有一个数据字段。里面的内容类似这样
a
1
1-2
1-3
1-2-4
5
5-6
5-7
8应该如何写SQL才能出现这样的结果呢?
8
5
5-6
5-7
1
1-2
1-3
1-2-4使用select * from tab where 1 order by a desc
只能的出这样的排序
8
5-7
5-6
5
1-2-4
1-3
1-2
1
a
1
1-2
1-3
1-2-4
5
5-6
5-7
8应该如何写SQL才能出现这样的结果呢?
8
5
5-6
5-7
1
1-2
1-3
1-2-4使用select * from tab where 1 order by a desc
只能的出这样的排序
8
5-7
5-6
5
1-2-4
1-3
1-2
1
MID(a,1,1) DESC,
CAST(REPLACE(a,'-','') AS DECIMAL) ,LENGTH(a) desc
from tab
order by SUBSTRING_INDEX(a,'-',1) desc,length(a),SUBSTRING_INDEX(a,'-',2)
我想把你供起来
2楼的朋友你也很棒,谢谢你们帮我
不过2楼的方法结果与order by a desc结果一样
学到新东西了.谢谢啊
不是吧
mysql> SELECT * FROM ttg1 ORDER BY
-> MID(a,1,1) DESC,
-> CAST(REPLACE(a,'-','') AS DECIMAL) ,LENGTH(a) desc;
+-------+
| a |
+-------+
| 8 |
| 5 |
| 5-6 |
| 5-7 |
| 1 |
| 1-2 |
| 1-3 |
| 1-2-4 |
+-------+
8 rows in set (0.00 sec)
是按照降序排下来的.没有这种效果哦.不会是我的MYSQL版本太低的关系吧?
我的MYSQL5.0的版本