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

Cách hàm CHARACTER_LENGTH () hoạt động trong MySQL

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Loại trường cơ sở dữ liệu tốt nhất cho một URL

  2. MySQL - Làm thế nào để thả bảng nếu tồn tại trong cơ sở dữ liệu?

  3. Tại sao chèn MySQL InnoDB chậm như vậy?

  4. Làm thế nào để kết nối với Cơ sở dữ liệu MySQL?

  5. Làm cách nào để lặp qua truy vấn MySQL qua PDO trong PHP?