当前位置: 首页 > 面试题库 >

MySQL VARCHAR长度和UTF-8

邵毅
2023-03-14
问题内容

在MySQL中,如果我VARCHAR(32)在UTF-8表中创建一个新字段,是否意味着我可以在该字段中html" target="_blank">存储32个字节的数据或32个字符(多字节)?


问题答案:

这个答案出现在我的Google搜索结果的顶部,但不正确,所以:

混乱可能是由于测试了不同版本的mysql。

  • 版本4计数字节
  • 版本5包含字符

http://dev.mysql.com/doc/refman/5.0/zh-CN/string-type-
overview.html

MySQL以字符单位解释字符列定义中的长度规范。(在MySQL
4.1之前,列的长度以字节为单位进行解释。)这适用于CHAR,VARCHAR和TEXT类型。

有趣的是(我没想过)varchar列的最大长度受utf8的影响如下:

在MySQL
5.0.3及更高版本中,VARCHAR的有效最大长度取决于最大行大小(65,535字节,在所有列之间共享)和所使用的字符集。例如,utf8字符每个字符最多需要三个字节,因此使用utf8字符集的VARCHAR列可以声明为最多21,844个字符。



 类似资料:
  • 我尝试过创建循环,比如减去用户想要购买的物品的数量,同时计算取值时的模数为0,减去用户购买的数量,但我离它还很远。 数组来自其他方法: 是商品的价格是用户购买的商品数量是用户对折扣的选择,例如,用户可以将折扣设置为2包、3包甚至无。

  • 问题内容: 我在MySQL查询中使用,将多行转换为单个字符串。但是,此函数结果的最大长度为字符。 我非常清楚,我可以更改参数以增加此限制: 但是,在我使用的服务器上,我无法更改任何参数。不能通过使用前面的查询,也不能通过编辑任何配置文件。 所以我的问题是:还有其他方法可以将多行查询的输出转换为单个字符串吗? 问题答案: 这个查询有点奇怪,但是不需要另一个查询来初始化变量。并且可以将其嵌入更复杂的查

  • 问题内容: 与使用循环相比,在Python中是否有一种更惯用的方式来计算字符串长度? 我试过了,但只适用于整数: 问题答案: 我知道这是一个老问题,但是我不禁注意到Python错误消息 告诉 您如何执行此操作: 所以:

  • 问题内容: UTF-8和UTF-16之间的区别?我们为什么需要这些? 问题答案: 我相信Web上有很多关于此的好文章,但这是一个简短的摘要。 UTF-8和UTF-16都是可变长度编码。但是,在UTF-8中,字符可能至少占据8位,而在UTF-16中,字符长度以16位开始。 UTF-8主要优点: 基本ASCII字符(例如数字,不带重音的拉丁字符等)占据一个字节,与US-ASCII表示形式相同。这样,所

  • 长度必须包含数字和长度单位,并且它们之间不允许出现空格。数字可以是整数或小数,可以是正数或负数。如果数字为0,则可以带单位,也可以不带。因此,以下都是合法的长度值:1.5em,-20px,0。 CSS的长度单位分为绝对长度单位和相对长度单位。使用绝对长度单位时,其值是一个固定的值;使用相对长度单位时,其长度值不是固定的,它会随着参考值的变化而变化。 常用的绝对长度单位有pt(点)、mm(毫米)、c

  • 2. Unicode和UTF-8 为了统一全世界各国语言文字和专业领域符号(例如数学符号、乐谱符号)的编码,ISO制定了ISO 10646标准,也称为UCS(Universal Character Set)。UCS编码的长度是31位,可以表示231个字符。如果两个字符编码的高位相同,只有低16位不同,则它们属于一个平面(Plane),所以一个平面由216个字符组成。目前常用的大部分字符都位于第一个