Trong MySQL, CHAR_LENGTH() hàm trả về độ dài của một chuỗi, được đo bằng ký tự. MySQL cũng có CHARACTER_LENGTH() , là từ đồng nghĩa với CHAR_LENGTH() .
Đây là một ví dụ:
SELECT CHAR_LENGTH('Lit');
Và đây là kết quả:
+--------------------+
| CHAR_LENGTH('Lit') |
+--------------------+
| 3 |
+--------------------+
Khoảng trống sau
Lưu ý rằng CHAR_LENGTH() bao gồm các khoảng trống ở cuối (ví dụ:khoảng trắng ở cuối chuỗi) trong các phép tính của nó.
Vì vậy, nếu chúng ta thêm khoảng trắng vào cuối ví dụ trước:
SELECT CHAR_LENGTH('Lit');
Đây là kết quả:
+---------------------+
| CHAR_LENGTH('Lit ') |
+---------------------+
| 4 |
+---------------------+
Nhưng chúng tôi luôn có thể xóa khoảng trắng ở cuối đó bằng cách thêm TRIM() chức năng vào hỗn hợp:
SELECT CHAR_LENGTH(TRIM('Lit '));
Đây là kết quả:
+---------------------------+
| CHAR_LENGTH(TRIM('Lit ')) |
+---------------------------+
| 3 |
+---------------------------+
Khoảng trống hàng đầu
Điều này cũng tương tự với các ô trống ở đầu. Vì vậy, nếu chúng ta thêm khoảng trắng vào start của chuỗi thay vào đó:
SELECT CHAR_LENGTH('Lit');
Chúng tôi nhận được cùng một kết quả:
+---------------------+
| CHAR_LENGTH('Lit ') |
+---------------------+
| 4 |
+---------------------+
Loại dữ liệu
Không quan trọng loại dữ liệu mà chuỗi được lưu trữ, nó vẫn sẽ trả về kết quả tương tự. Điều này trái ngược với LENGTH() , sẽ trả về gấp đôi số ký tự trong trường hợp dữ liệu đang được lưu trữ dưới dạng chuỗi Unicode.
Trong ví dụ sau, cột ArtistName sử dụng varchar (255) :
SELECT CHAR_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
Đây là kết quả:
+-------------------------+ | CHAR_LENGTH(ArtistName) | +-------------------------+ | 3 | +-------------------------+
Và nếu chúng tôi sửa đổi ArtistName cột sử dụng Unicode:
ALTER TABLE Artists MODIFY COLUMN ArtistName VARCHAR(255) unicode;
Và chạy lại cùng một truy vấn:
SELECT CHAR_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
Chúng tôi vẫn nhận được cùng một kết quả:
+-------------------------+ | CHAR_LENGTH(ArtistName) | +-------------------------+ | 3 | +-------------------------+
Tuy nhiên, nếu chúng tôi đã sử dụng LENGTH() , kết quả sẽ là 6. Điều này là do chuỗi Unicode lưu trữ 2 byte cho mỗi ký tự và LENGTH() hàm trả về độ dài được đo bằng byte.