既然网上答案参差不齐,不如就去找找权威的官方文档。
进入MySQL文档首页 https://dev.mysql.com/doc/ ,选择下方的参考手册,根据版本笔者选择了MySQL 5.7 Reference Manual。
进入手册后,因为我们要查询字符串的函数,所以左侧目录选择String Functions and Operators。
跳转后可以看到一个函数表格,包括了接近60个字符串函数,我们需要查询字符串长度的函数,使用CTRL + F查找关键词length,大致筛选出以下5个函数:
函数名解释原文翻译BIT_LENGTH()Return length of argument in bits返回参数的bit数CHAR_LENGTH()Return number of characters in argument返回参数中的字符数CHARACTER_LENGTH()Synonym for CHAR_LENGTH()CHAR_LENGTH()的同义词LENGTH()Return the length of a string in bytes返回字符串的长度(以字节为单位)OCTET_LENGTH()Synonym for LENGTH()LENGTH()的同义词我们可以看到这些函数返回值的单位有bit、字节、字符数,弄清楚单位之间的转换关系就能更好的理解查询结果的含义。
我们知道字节是计算机最小的存储单位,1字节等于8 bit,那么存储1个字符需要用到多少字节呢?这个和使用的编码集有关,查询手册https://dev.mysql.com/doc/refman/5.7/en/charset-unicode.html,以我们最常用的UTF-8为例: