Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

LENGTH () trong MySQL là gì?

Một trong nhiều hàm trong MySQL là LENGTH() , trả về độ dài của một chuỗi, được tính bằng byte.

Ví dụ:

SELECT LENGTH('Lit');

Kết quả:

+---------------+
| LENGTH('Lit') |
+---------------+
|             3 |
+---------------+

Đây là một ví dụ đơn giản và kết quả giống như khi chúng tôi sử dụng CHAR_LENGTH() hàm số. Tuy nhiên, LENGTH() hàm có thể trả về các kết quả khác nhau, tùy thuộc vào kiểu dữ liệu.

Loại dữ liệu

Khi bạn truy vấn cơ sở dữ liệu, LENGTH() hàm có thể trả về một kết quả khác, tùy thuộc vào kiểu dữ liệu. Chuỗi Unicode trả về gấp đôi số byte. Chuỗi UTF-8 có thể khác nhau.

Dưới đây là một ví dụ về việc sử dụng UTF-8:

SELECT LENGTH(_utf8 '€');

Kết quả:

+---------------------+
| LENGTH(_utf8 '€')   |
+---------------------+
|                   3 |
+---------------------+

Trong trường hợp này, ký hiệu Euro sử dụng 3 byte.

Trong ví dụ sau, chúng tôi truy vấn một cơ sở dữ liệu. Trong trường hợp này, ArtistName cột sử dụng varchar (255) kiểu dữ liệu:

SELECT LENGTH(ArtistName) 
FROM Artists
WHERE ArtistName = 'Lit';

Vì vậy, kết quả trông như thế này:

+--------------------+
| LENGTH(ArtistName) |
+--------------------+
|                  3 |
+--------------------+

Tuy nhiên, nếu chúng tôi thay đổi cột thành ucs2 , mỗi ký tự sẽ được biểu diễn bằng một mã Unicode 2 byte, và do đó kết quả sẽ khác nhau.

Để chứng minh, chúng ta có thể thay đổi bảng như sau:

SELECT LENGTH(ArtistName) 
ALTER TABLE Artists 
MODIFY COLUMN ArtistName VARCHAR(255) CHARSET ucs2;

Bây giờ nếu chúng ta truy vấn lại nó:

SELECT LENGTH(ArtistName) 
FROM Artists
WHERE ArtistName = 'Lit';

Kết quả:

+--------------------+
| LENGTH(ArtistName) |
+--------------------+
|                  6 |
+--------------------+

Khoảng trống sau

LENGTH() hàm đếm khoảng trống ở cuối (chẳng hạn như khoảng trắng ở cuối chuỗi). Vì vậy, nếu chúng ta thêm một khoảng trắng vào cuối ví dụ đầu tiên, chúng ta sẽ nhận được kết quả sau:

SELECT LENGTH('Lit');

Kết quả:

+----------------+
| LENGTH('Lit ') |
+----------------+
|              4 |
+----------------+

Khoảng trống hàng đầu

Chúng tôi nhận được kết quả tương tự với các ô trống ở đầu (ví dụ:khoảng trắng ở đầu chuỗi):

SELECT LENGTH('Lit');

Kết quả:

+----------------+
| LENGTH('Lit ') |
+----------------+
|              4 |
+----------------+

Transact-SQL (dành cho SQL Server, Azure) có một chức năng tương tự, nhưng trong T-SQL, nó được gọi là DATALENGTH() .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP / MySQL Chèn giá trị rỗng

  2. Làm thế nào để chuyển đổi tất cả các bảng từ MyISAM thành InnoDB?

  3. 7 cách tìm hàng trùng lặp khi bỏ qua khóa chính trong MySQL

  4. Cách tối ưu hóa bảng MySQL / MariaDB

  5. Truy vấn SCHEMA THÔNG TIN của MySQL:Tại sao? Thế nào?