MySQL使用Length和Cast函数计算TEXT类型字段的长度

Posted 丶会飞的羊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL使用Length和Cast函数计算TEXT类型字段的长度相关的知识,希望对你有一定的参考价值。

背景:

前段时间,业务需要,为了快速让解析的Excel入库,所以把不是很确定的字段全部设置成了TEXT。

今天需要进行表结构优化,把字段长度控制在合适的范围,并尽量不使用TEXT类型。

 

-- 计算长度
select LENGTH(CAST(fileName AS CHAR)) from files;

select MAX(LENGTH(CAST(fileName AS CHAR))) from files;

select LENGTH(CAST(fileName AS CHAR)) as le from files HAVING le > 20;

-- 尝试转为VARCHAR类型进行计算,但是报错,也许是因为VARCHAR是变长的,在一个变长的类型上进行长度计算是不合理的。

-- 这点不是很清楚,等以后学艺更精的时候再解释吧。

select LENGTH(CAST(fileName AS VARCHAR)) from files;

[SQL]select LENGTH(CAST(fileName AS VARCHAR)) from files;
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your mysql server version for the right syntax to use near ‘VARCHAR)) from files‘ at line 1

 



以上是关于MySQL使用Length和Cast函数计算TEXT类型字段的长度的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL中,CAST函数的使用规则

MYSQL 函数-字符串函数

第五章MYSQL 函数-字符串函数

SQL Server 数据类型转换函数

MySQL CAST与CONVERT 函数的用法

Mysql中Cast()函数的用法