我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql计算字段长度函数之CHAR_LENGTH函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql计算字段长度函数之CHAR_LENGTH函数

CHAR_LENGTH函数用于返回字符串的长度,长度单位为字符

不管汉字,数字或是字母都算是一个字符包括中英文标点符号,空格也算是一个字符

语法结构

CHAR_LENGTH(str)

str:计算长度的字符串 

示例

-- 4
SELECT CHAR_LENGTH('test');
-- 12
SELECT CHAR_LENGTH('Hello World!');
-- 2
SELECT CHAR_LENGTH('小胡');
-- 3
SELECT CHAR_LENGTH('123');
-- 4
SELECT CHAR_LENGTH(',,,,');
-- 2
SELECT CHAR_LENGTH('  ');
-- 0
SELECT CHAR_LENGTH('');
-- Null
SELECT CHAR_LENGTH(NULL);

案例:对过长的昵称进行截取处理

导入数据

drop table if exists user_info;
CREATE TABLE user_info (
    id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
    uid int UNIQUE NOT NULL COMMENT '用户ID',
    `nick_name` varchar(64) COMMENT '昵称',
    achievement int COMMENT '成就值',
    level int COMMENT '用户等级',
    job varchar(32) COMMENT '职业方向',
    register_time datetime COMMENT '注册时间'
)CHARACTER SET utf8 COLLATE utf8_general_ci;
INSERT INTO user_info(uid,`nick_name`,achievement,`level`,job,register_time) VALUES
  (1001, '牛客1', 19, 0, '算法', '2020-01-01 10:00:00'),
  (1002, '牛客2号', 1200, 3, '算法', '2020-01-01 10:00:00'),
  (1003, '牛客3号♂', 22, 0, '算法', '2020-01-01 10:00:00'),
  (1004, '牛客4号', 25, 0, '算法', '2020-01-01 11:00:00'),
  (1005, '牛客5678901234号', 4000, 7, '算法', '2020-01-01 10:00:00'),
  (1006, '牛客67890123456789号', 25, 0, '算法', '2020-01-02 11:00:00');

user_info表(用户信息表)

Mysql计算字段长度函数之CHAR_LENGTH函数

uid: 用户ID   nick_name: 昵称   achievement: 成就值   level: 等级   job: 职业方向

register_time: 注册时间 

问题:

有的用户的昵称特别长,在一些展示场景会导致样式混乱,因此需要将特别长的昵称转换一下再输出,请输出字符数大于10的用户信息,对于字符数大于13的用户输出前10个字符然后加上三个点号: "..."

-- 解法1
SELECT uid, IF(CHAR_LENGTH(nick_name) > 13,CONCAT(LEFT(nick_name,10),'...'),nick_name)AS nick_name
FROM user_info
WHERE CHAR_LENGTH(nick_name) > 10;
-- 解法2
SELECT uid,
       (CASE WHEN CHAR_LENGTH(nick_name) <= 13 THEN nick_name
             ELSE CONCAT(SUBSTRING(nick_name,1,10),'...')
        END)AS nick_name
FROM user_info
WHERE CHAR_LENGTH(nick_name) > 10;

结果展示:

Mysql计算字段长度函数之CHAR_LENGTH函数

解释: 字符数大于10的用户有1005和1006,长度分别为13、17,因此需要对1006的昵称截断输出  

附:CHAR_LENGTH()和LENGTH()的区别

无论是LENGTH()还是CHAR_LENGTH()都是为了统计字符串的长度。只不过,LENGTH()是按照字节来统计的,CHAR_LENGTH()是按照字符来统计的。例如:一个包含5个字符且每个字符占两个字节(比如汉字)的字符串而言,LENGTH()返回长度10,CHAR_LENGTH()返回长度是5;如果对于单字节的字符,则两者返回结果相同。

一、char_length('string')/char_length(column_name)

1、返回值为字符串string或者对应字段长度,长度的单位为字符,一个多字节字符(例如,汉字)算作一个单字符;

2、不管汉字还是数字或者是字母都算是一个字符;

3、任何编码下,多字节字符都算是一个字符; 

二、length('string')/length(column_name)

1、utf8字符集编码下,一个汉字是算三个字符,一个数字或字母算一个字符。

2、其他编码下,一个汉字算两个字符, 一个数字或字母算一个字符。

总结

到此这篇关于mysql计算字段长度函数之CHAR_LENGTH函数的文章就介绍到这了,更多相关Mysql CHAR_LENGTH函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql计算字段长度函数之CHAR_LENGTH函数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Mysql计算字段长度函数之CHAR_LENGTH函数

目录语法结构示例案例:对过长的昵称进行截取处理问题:附:CHAR_LENGTH()和LENGTH()的区别总结CHAR_LENGTH函数用于返回字符串的长度,长度单位为字符不管汉字,数字或是字母都算是一个字符,包括中英文标点符号,空格也算
2023-05-19

Mysql计算字段长度函数之LENGTH函数

目录语法结构示例案例应用场景总结LENGTH函数用于返回字符串的字节长度,长度单位为字节使用uft8编码字符集时,一个汉字是3个字节,一个数字或字母是一个字节与CHAR_LENGTH函数的区别CHAR_LENGTH函数用于返回字符串的
2023-05-19

用LEN函数计算字符串的长度方法

如何使用LEN函数统计字符串长度,需要具体代码示例在编程中,经常会遇到需要统计字符串长度的情况,这时可以使用LEN函数来实现。LEN函数是一种常用的字符串函数,它可以返回给定字符串的字符个数,非常方便实用。下面将会介绍如何使用LEN函数来
用LEN函数计算字符串的长度方法
2024-01-29

MySQL快速回顾:计算字段与函数

9.1 计算字段存储在数据库表中的数据一般不是应用程序所需要的格式。比如:如果想要在一个字段中既显示公司名,又显示公式的地址,但这两个信息一般包含在不同的表列中。城市、州和邮政编码存储在不同的列中,但邮件标签打印程序却需要把它们作为一个恰当格式的字段检索出来。
MySQL快速回顾:计算字段与函数
2019-07-24

MySQL LENGTH() 函数如何测量字符串长度?

MySQL LENGTH() 函数以“字节”为单位测量字符串长度,这意味着它不是多字节安全的。多字节安全函数(如 CHAR_LENGTH() 或 CHARACTER_LENGTH())与 LENGTH() 函数之间的结果差异尤其与 Unic
2023-10-22

中文文本长度计算的异同:lenb函数和len函数的比较

lenb函数和len函数对于中文文本长度计算的异同点,需要具体代码示例【引言】在使用编程语言处理中文文本时,我们经常要计算文本的长度。在Python中,常用的计算文本长度的函数有len和lenb。这两个函数在处理中文文本时有一些异同点,本
中文文本长度计算的异同:lenb函数和len函数的比较
2024-01-29

技术分享 | MySQL 字段长度限制的计算方法

一、MySQL 限制回顾之前在《MySQL Text 字段的限制》一文中讲过了关于 MySQL 在 Server 层和 InnoDB 层的限制,但是限制的算法没有详细展开,这里进行补充说明,先回顾一下 MySQL 的两个限制1.MySQL Server 层 的
技术分享 | MySQL 字段长度限制的计算方法
2015-02-24

c++中求字符串长度的函数

c++ 中用 length() 函数求字符串长度,返回字符数量(包括空格)。语法:size_t length() const。C++ 中求字符串长度的函数在 C++ 中,使用 length() 函数可以求字符串的长度。该函数返回字符串中字
c++中求字符串长度的函数
2024-05-12

计算Java数组长度函数的方法以及代码分析

在本篇内容里,小编给大家整理了关于计算Java数组长度函数的方法以及代码分析内容,有兴趣的朋友么可以学习参考下。
2022-11-13

sql中字符串长度函数是什么

sql 中确定字符串长度的函数是 len(),用于计算字符串中字符的数量(不包括空格)。其他类似函数包括:2. char_length():区分大小写;3. length():仅适用于 mysql。SQL 中字符串长度函数SQL(结构化查
sql中字符串长度函数是什么
2024-05-08

编程热搜

目录