LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1884|回复: 2

用什么方法才能把字符串“10”排序字符串“9”后面?

[复制链接]
发表于 2009-8-11 11:35:18 | 显示全部楼层 |阅读模式
!0!1!               
!0!10!      
!0!9!      
三个字符串从数据库中读出来,用order by排序,结果如上
我需要把含有“9”的字符串排在含有“10”的前面,有什么办法?
我查了ASIC表,“!”是排在数字前面的,为什么“9!”会排在“10”后面?
发表于 2009-8-11 15:21:18 | 显示全部楼层
1-9,10,11 如果代表的是字符串,那么对于sql 排序类似
1
1-0
1-1
2
3
...
9
可以使用字符串转换整数的方法排序.例如:
id_是存放这些字符串的字段,在mysql下
select id_+0 as id2_ from user order by id2_
如果是其他数据库找到它们的字符串转整数的转换函数就ok了!
回复 支持 反对

使用道具 举报

发表于 2009-8-11 16:23:05 | 显示全部楼层
字符串的比较方法一般和基本型的变量不一样,从第一个字符到最後一个逐个比,只要有一位大,後面的就不继续比较了,就算这个字符串大於另外一个。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表