教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 mysql数据库text字段排序实现语句

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

发布时间:2023-04-30   编辑:jiaochengji.com
教程集为您提供mysql数据库text字段排序实现语句等资源,欢迎您收藏本站,我们将为您提供最新的mysql数据库text字段排序实现语句资源
在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
如此,就达到了我们的目标。

您可能感兴趣的文章:
mysql 按指定字段长度排序的示例代码
mysql数据库text字段排序实现语句
本人珍藏的23个MySQL常用SQL查询语句[绝对干货]
mysql根据汉字首字母排序的方法
MySQL常见错误代码解析
mysql修改字段长度的命令
mysql修改字段长度的sql语句分享
mysql联合索引与Where子句优化浅析
Mysql数据库错误代码中文说明详解
mysql常见出错代码中文解释

[关闭]
~ ~