[Mysql] LENGTH函数
短信预约 -IT技能 免费直播动态提醒
LENGTH函数用于返回字符串的字节长度,长度单位为字节
使用uft8编码字符集时,一个汉字是3个字节,一个数字或字母是一个字节
与CHAR_LENGTH函数的区别
CHAR_LENGTH函数用于返回字符串的长度,长度单位为字符,不管汉字,数字或是字母都算是一个字符,包括中英文标点符号,空格也算是一个字符
举例:对于包含5个三字节字符的字符串,LENGTH()函数返回15, 而CHAR_LENGTH()函数返回5
语法结构
LENGTH(str)
str:计算长度的字符串
示例
-- 4SELECT LENGTH('text');-- 5SELECT LENGTH('12345');-- 9SELECT LENGTH('数据库');-- 0SELECT LENGTH('');-- 2 空格是一个字节SELECT LENGTH(' ');-- 3 英文标点符号是一个字节SELECT LENGTH('...');--- 9 中文标点符号是3个字节,SELECT LENGTH('。。。');-- NullSELECT LENGTH(NULL);-- CHAR_LENGTH函数用于返回字符串的长度,长度单位为字符-- 4SELECT CHAR_LENGTH('text');-- 5SELECT CHAR_LENGTH('12345');-- 3SELECT CHAR_LENGTH('数据库');
案例
通过length()<>char_length()可以用来检验是否含有中文字符
导入数据
DROP TABLE IF EXISTS `students`;CREATE TABLE `students` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;INSERT INTO `students` VALUES ('1', 'Odin');INSERT INTO `students` VALUES ('2', '小胡');INSERT INTO `students` VALUES ('3', 'Jack');INSERT INTO `students` VALUES ('4', 'Bob');INSERT INTO `students` VALUES ('5', '星星');
students表
-- 检验是否含有中文字符SELECT NAMEFROM studentsWHERE LENGTH(NAME) <> CHAR_LENGTH(NAME);
结果展示:
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341