Trong MySQL, CHARACTER_LENGTH()
hàm trả về độ dài của một chuỗi, được đo bằng ký tự.
CHARACTER_LENGTH()
là từ đồng nghĩa với CHAR_LENGTH()
chức năng.
Cú pháp
Cú pháp như sau:
CHARACTER_LENGTH(str)
Ở đâu str
là chuỗi mà độ dài sẽ được trả về.
Ví dụ 1 - Cách sử dụng cơ bản
Dưới đây là một ví dụ về cách sử dụng cơ bản:
SELECT CHARACTER_LENGTH('Cat');
Và đây là kết quả:
+-------------------------+ | CHARACTER_LENGTH('Cat') | +-------------------------+ | 3 | +-------------------------+
Ví dụ 2 - Khoảng trống sau
Lưu ý rằng CHARACTER_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 CHARACTER_LENGTH('Cat');
Đây là kết quả:
+--------------------------+ | CHARACTER_LENGTH('Cat ') | +--------------------------+ | 4 | +--------------------------+
Nhưng chúng tôi luôn có thể xóa khoảng trắng ở cuối đó bằng cách sử dụng TRIM()
hoặc hàm RTRIM()
chức năng:
SELECT CHARACTER_LENGTH(TRIM('Cat ')) AS 'TRIM', CHARACTER_LENGTH(RTRIM('Cat ')) AS 'RTRIM';
Đây là kết quả:
+------+-------+ | TRIM | RTRIM | +------+-------+ | 3 | 3 | +------+-------+
Ví dụ 3 - Khoảng trống hàng đầu
Khái niệm tương tự cũng áp dụng cho các ô trống ở đầu. Bạn có thể sử dụng TRIM
hoặc LTRIM
:
SELECT CHARACTER_LENGTH(TRIM(' Cat')) AS 'TRIM', CHARACTER_LENGTH(LTRIM(' Cat')) AS 'LTRIM';
Kết quả:
+------+-------+ | TRIM | LTRIM | +------+-------+ | 3 | 3 | +------+-------+
Ví dụ 4 - Các kiểu 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ề cùng một kết quả. Đ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 CHARACTER_LENGTH(ArtistName) Result FROM Artists WHERE ArtistName = 'Lit';
Đây là kết quả:
+--------+ | Result | +--------+ | 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 CHARACTER_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
Chúng tôi vẫn nhận được cùng một kết quả:
+--------+ | Result | +--------+ | 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.