Computer >> Máy Tính >  >> Lập trình >> MySQL

length () so với char_length () trong MySQL?

Char_length () có thể được sử dụng để hiển thị độ dài của một chuỗi. Hãy để chúng tôi xem một ví dụ để lấy độ dài của chuỗi được bao gồm dưới dạng tham số.

mysql> select char_length('John');

Sau đây là kết quả đầu ra.

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

Hàm length () có thể được sử dụng để hiển thị độ dài của chuỗi được đo bằng byte. Trong nhiều trường hợp, các ký tự và byte có cùng độ dài.

Đây là một ví dụ về length ()

mysql> select length('Tim');

Sau đây là kết quả đầu ra.

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

Độ dài () và char_length () cho cùng một kết quả trong chuỗi. Hàm length () cho độ dài khác nhau khi nó áp dụng Unicode. Giả sử một tên cột có unicode. Trong Unicode, mỗi ký tự đơn có 2 byte.

Hãy để chúng tôi xem một ví dụ -

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

Chèn bản ghi vào bảng.

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

Hiển thị tất cả các bản ghi từ bảng với sự trợ giúp của select.

mysql> select *from LengthAndCharLengthDemo;

Đây là kết quả đầu ra.

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

Hãy để chúng tôi có được chiều dài.

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

Đây là kết quả đầu ra.

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

Trong đầu ra ở trên, bạn có thể thấy hàm length () trả về 8 byte vì unicode trong khi char_length () chỉ trả về 4.