MySQL varchar保存汉字和字母长度
程序员文章站
2022-05-26 21:12:38
...
MySQL 5.0以上的版本: 1.一个汉字占多少长度与编码有关: UTF-8:一个汉字=3个字节 GBK:一个汉字=2个字节 2.varchar(n)表示n个字符,无论汉字和英文,Mysql都能存入n个字符,但是实际字节长度有所区别 3.MySQL检查长度,可用SQL语言: select LENGTH(fieldname) from tablename 来查看。 最近发现 Oracle 和 MySQL 的字段长度的计算不一样(都是UTF8编码),比如: 在Oracle下定义: name varchar2(10) , name字段能存放: 10个字符或3个汉字 在MySQL下定义: name varchar(10), name字段能存放: 10个字符或10个汉字。 经查:MySQL5 以后 varchar 的单位是 字符了, 而 oracle 的varchar2 是字节。
length: 是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符
CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符。
一个多字节字符算作一个单字符。对于一个包含五个二字节字符集,
LENGTH()返回值为 10,而CHAR_LENGTH()的返回值为5。
CHARACTER_LENGTH(str) CHARACTER_LENGTH()是CHAR_LENGTH()的同义词。
BIT_LENGTH(str) 返回2进制长度.
上一篇: 一个PHP变量赋值的问题