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

CHAR_LENGTH () trong MySQL là gì?

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách xếp hạng qua phân vùng trong MySQL

  2. Cách bật nhật ký truy vấn chậm trong AWS RDS MySQL

  3. Sử dụng các chuỗi để thực hiện các yêu cầu cơ sở dữ liệu

  4. ROW_NUMBER () trong MySQL

  5. SQLException:Không tìm thấy trình điều khiển phù hợp