MySql计算字段的长度
用户账号有用中文字符,查找所有含有中文字符的账号
SELECT member_name FROM table_member WHERE length(member_name)!=char_length(member_name)
LENGTH
mysql里面的 “LENGTH” 函数是一个用来获取字符串长度的内置函数
CHAR_LENGTH
在mysql内置函数里面查看字符串长度的还有一个函数是 “CHAR_LENGTH”,这两个函数的区别是:
LENGTH: 一个汉字是算三个字符,一个数字或字母算一个字符。
CHAR_LENGTH: 不管汉字还是数字或者是字母都算是一个字符
实例
汉字
SELECT LENGTH('字符');
输出:6
SELECT CHAR_LENGTH('字符');
输出:2
字符
SELECT LENGTH('abc');
输出:3
SELECT CHAR_LENGTH('abc');
输出:3
命令 | 单位 | 一个汉字 | 一个数字or字母 | 示例 |
---|---|---|---|---|
char_length | 字符 | 1 | 1 | char_length(str) |
length | Byte | 3 | 1 | length(str) |
bit_length | bit | 24 | 8 | length(str) |
`
当字符串的长度,超过max_allowed_packet定义的最大长度,上述函数将返回NULL。
max_allowed_packet一般默认为4MB(5.6.5及一下为1MB)
如需了解MySQL所有类型的长度定义、存储开销,可以参考《MySQL所有类型的长度范围、存储开销(区分显示宽度/有无符号)》