mysql中获取字符的长度的常见函数有以上三种,他们的区别在于衡量长度的单位是不同的。

目录

背景描述

mysql中长度函数描述

使用案例


背景描述

ASCII码

因为计算机是美国人发明和最早使用的,他们为了解决计算机处理字符串的问题,就将数字字母和一些常用的符号做成了一套编码,这个编码就是ASCII码。ASCII码包括数字大小写字母和常用符号,一共128个,1字节(byte)=8bit,8bit能表示的最大数是256,所以ASCII编码中一个字符的大小就是1个字节。

UNICODE

计算机进入中国,我们发现美国人制定的ASIIC完全不够用,于是我们就制定了自己的GB2312编码,把汉字编码了进去。同样的事情发生了在了俄罗斯,法国,日本等等,各国都开始制定自己的一套编码,计算机的编码越来越庞大,越来越乱,为了解决这一问题,Unicode应运而生。Unicode将各国文字统一编码。所以Unicode编码可以看做是ASCII的扩展。

UTF-8

UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。

mysql中长度函数描述

BIT_LENGTH:Return length of argument in bits,即为返回字符串的bit位数。

LENGTH:Return the length of a string in bytes,返回字符串的byte数,同OCTET_LENGTH。

CHAR_LENGTH:Return number of characters in argument,返回字符串的字符数量,同CHARACTER_LENGTH。

使用案例

1.取字符串的bit位数

select store_id,store_name,BIT_LENGTH(store_name) from store where store_id=108;+----------+-------------+------------------------+
| store_id | store_name  | BIT_LENGTH(store_name) |
+----------+-------------+------------------------+
|      108 | 108_unknown |                     88 |
+----------+-------------+------------------------+

因为store_name包括11个字符,每个字符bit位数为8位,总共88位。

2.取字符串的byte数

select store_id,store_name,LENGTH(store_name) from store where store_id=101;
+----------+------------------------+--------------------+
| store_id | store_name             | LENGTH(store_name) |
+----------+------------------------+--------------------+
|      101 |  红旗超市(101)       |                 22 |
+----------+------------------------+--------------------+

" 红旗超市(101)"字符串中包括6个中文,4个英文,总共6*3+4=22个byte

3.返回字符串的字符个数

select store_id,store_name,CHAR_LENGTH(store_name) from store where store_id in (101,108);
+----------+------------------------+-------------------------+
| store_id | store_name             | CHAR_LENGTH(store_name) |
+----------+------------------------+-------------------------+
|      101 |  红旗超市(101)       |                      10 |
|      108 | 108_unknown            |                      11 |
+----------+------------------------+-------------------------+

无论中文或者英文,都取字符个数。

mysql中的BIT_LENGTH和LENGTH以及CHAR_LENGTH的区别相关推荐

  1. mysql中双引号和单引号有什么区别

    mysql中双引号和单引号有什么区别 前2天看到有人问,mysql中双引号和单引号有什么区别? 希望大家可以关注下公众号,支持一下,鞠躬感谢~ 我就直接po代码和截图了,如下 select * fro ...

  2. mysql 中 RC、RR隔离级别的原理及区别

    今天分享 mysql 中 RC.RR隔离级别的原理及区别: 1.首先简介mysql四种隔离级别: 1)未提交读(READ UNCOMMITED)脏读 2) 已提交读 (READ COMMITED)简称 ...

  3. MySQL中length()、char_length()的区别和用法

    小伙伴想精准查找自己想看的MySQL文章?喏 → MySQL专栏目录 | 点击这里 在MySQL中length(str).char_length(str)都属于判断长度的内置函数,根据其得到字符串的长 ...

  4. MySQL中 int(11)和int(10)有没有区别

    引言 依稀还记得有次面试,有面试官问我int(10)与int(11)有什么区别,当时觉得就是长度的区别吧!面试官最后也没有给反馈,我也就以为自己答对了.直到有一次有个同学又跟我谈起这个事,才去查了以下 ...

  5. mysql中nchar_浅谈SQL Server、MySQL中char,varchar,nchar,nvarchar区别

    1,定义: char:    固定长度,存储ANSI字符,不足的补英文半角空格. nchar:   固定长度,存储Unicode字符,不足的补英文半角空格 varchar:  可变长度,存储ANSI字 ...

  6. mysql中时间类型datetime,timestamp与int的区别

    在mysql中存储时间,我们可以用datetime 格式,timestamp格式,也可以用int格式.那么我们设计的时候该如何考虑呢? 首先,我觉得应该明白这几个格式究竟是如何的,然后看看他们的区别, ...

  7. mysql中:获取字符串长度length函数和char_length函数的区别

    先上结论: length函数: 计算值的长度-但1个中文会算作长度3,1个数字或者字母-算作长度1; char_length函数: 计算值的长度-但1个中文或者1个数字或者字母-都算作长度1; sql ...

  8. mysql中limit2,1和limit2 offset 1的区别

    limit的用法 limit是限制的意思,用于限制返回的查询结果的行数 (可以通过limit指定查询多少行数据) limit 语法是 MySql的方言,,用来完成分页 语法:SELECT 字段1,字段 ...

  9. Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结

    2019独角兽企业重金招聘Python工程师标准>>> 用了这么长时间,发现自己竟然不知道utf_bin和utf_general_ci这两者到底有什么区别.. ci是 case in ...

最新文章

  1. MongoDB for C#基础入门
  2. 解压缩工具 WinRAR 5.71 + x64 Final 中文汉化版
  3. cmd与monkey测试
  4. 前端学习(2164):runtimeonly和runtimecompiler
  5. [你必须知道的.NET]第二十五回:认识元数据和IL(中)
  6. 网络爬虫中Jsoup请求url
  7. 优秀简历模板和面试题分享
  8. java8 Optional源码
  9. PATH变量,cp,mv,cat,more,less,head,tail命令举例
  10. html设置referer防盗链,referer与防盗链
  11. linux 文件夹 775,Linux chmod目录权限命令图文详解
  12. 生活中的设计模式之状态(State)模式
  13. python文献翻译_Python实现一键翻译英文论文,实现了pdf文档英译汉,pdf格式不变...
  14. 什么是APS高级计划排程系统?APS计划排产有什么功能和作用?
  15. 电子计算机eniac的储存能力有限 只能,电子计算机ENIAC的存储能力有限,只能存储简单的控制程序代码。...
  16. Angular 个人深究(一)【Angular中的Typescript 装饰器】
  17. CMDN Club每周精选(第4期)
  18. 关于Java背后的故事
  19. android lottie字体json,从json文件到炫酷动画-Lottie实现思路和源码分析
  20. 关于差旅费的账务处理

热门文章

  1. Win10下的Python环境配置
  2. 使用cephadm部署单节点ceph集群,后期可扩容(基于官方文档,靠谱,读起来舒服)
  3. 多校胡策 round5 by:yts1999
  4. 实体对齐 算法_知识图谱中的实体对齐方法及装置与流程
  5. 芜湖市python培训价格
  6. [转载]从受欢迎角度分析哪些美国主流网站使用了哪些JS框架
  7. 中华英才网后续难雄起
  8. element中table多选功能禁止选择某一项
  9. 慎用!!! rm -rf 潜藏着巨大的危险!
  10. MyBatis发展历史