MySQL 中 length() 和 char_length() 的区别?


char_length() 可用于显示字符串的长度。让我们看一个示例,以获取包含在参数中字符串的长度。

mysql> select char_length('John');

以下是输出。

+---------------------+
| char_length('John') |
+---------------------+
| 4                   |
+---------------------+
1 row in set (0.00 sec)

length() 函数可用于显示以字节为单位测量的字符串的长度。在许多情况下,字符和字节具有相同的长度。

以下是 length() 的示例

mysql> select length('Tim');

以下是输出。

+---------------------+
| length('Tim')       |
+---------------------+
| 3                   |
+---------------------+
1 row in set (0.00 sec)

length() 和 char_length() 在字符串中给出了相同的结果。length() 函数在应用 Unicode 时给出不同的长度。假设一个列名有 unicode。在 Unicode 中,每个单个字符占用 2 个字节。

让我们看一个示例 −

mysql> create table LengthAndCharLengthDemo
-> (
-> FirstName varchar(200),
-> SecondName varchar(255) unicode
-> );
Query OK, 0 rows affected (0.49 sec)

将记录插入表中。

mysql> insert into LengthAndCharLengthDemo values('John','Ritter');
Query OK, 1 row affected (0.22 sec)

使用 select 在表中显示所有记录。

mysql> select *from LengthAndCharLengthDemo;

以下是输出。

+-----------+------------+
| FirstName | SecondName |
+-----------+------------+
| John      | Ritter     |
+-----------+------------+
1 row in set (0.00 sec)

让我们获取长度。

mysql> select char_length(FirstName),length(Secondname) from LengthAndCharLengthDemo
-> where FirstName='John' and Secondname='John';

以下是输出。

+------------------------+--------------------+
| char_length(FirstName) | length(SecondName) |
+------------------------+--------------------+
| 4                      | 8                  |
+------------------------+--------------------+
1 row in set (0.70 sec)

在上面的输出中,你可以看到 length() 函数由于 unicode 而返回 8 个字节,而 char_length() 只返回 4 个字节。

更新于: 2020 年 6 月 27 日

910 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告