百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql数据库text字段排序实现语句
分享文章到:

mysql数据库text字段排序实现语句

发布时间:01/15 来源: 浏览: 关键词:
在mysql中text字段类型是一个超长的字段了,我们几乎不会使用它来进行数据排序了,但今天下午碰到一个必须使用text字段排序的项目,最终还是解决了下面分享解决办法。
mysql中,默认对text字段进行排序的话是按text字段的首字符进行排序,即假如某表结构如下:
mysql_text_cast_orderby1
如果默认对此text类型的字段进行排序的话,如select * from table order by f1 asc。 结果可能如下图这样:
mysql_text_cast_orderby2
发现mysql对text类型的字段排序时只对首字符进行排序,并不是我们所预期的结果(按数字大小排序)。
所以如果想要解决这个问题,我们可以使用mysql的一个内置函数:cast,CAST ( expression AS data_type )。cast是一个显式的类型转换函数,将第一个参数转换成第二个参数所设置的类型,第一个参数可以是字段,或其它符合语法的表达式,第二个参数是目标类型,可以是如下几种类型:
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]
所以,对于我们要排序的这个字段来说,我们需要把这个字段转换为整型,如signed。对应的mysql语句可以是这样:
 代码如下
select * from table order by cast(f1 as signed) asc;
或者也可以这样:
 代码如下
select cast(f1 as signed) as f2 order by f2 asc

效果如下:
mysql_text_cast_orderby3
如此,就达到了我们的目标。
打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有4人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板