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

DATALENGTH () Tương đương trong MySQL là gì?

Nếu bạn đã làm việc với SQL Server trong bất kỳ khoảng thời gian nào, bạn có thể đã gặp phải Datalength() hàm số. Hàm này trả về số byte được sử dụng để biểu diễn một biểu thức.

Nhưng nếu bạn đã chuyển sang MySQL, bạn có thể đang tìm kiếm một hàm có chức năng tương tự.

Trong MySQL, Length() về cơ bản, hàm này thực hiện tương tự như T-SQL Datalength() chức năng trong SQL Server (và Azure). MySQL's Length() hàm trả về độ dài của một chuỗi, được tính bằng byte.

Ví dụ

Dưới đây là một số ví dụ để minh chứng.

Máy chủ SQL

Đây là một ví dụ cơ bản cho SQL Server (sử dụng T-SQL):

SELECT DATALENGTH('Cat') AS Datalength;

Kết quả:

Datalength
----------
3         

MySQL

Đây là truy vấn tương đương trong MySQL:

SELECT LENGTH('Cat') AS Length;

Kết quả:

+--------+
| Length |
+--------+
|      3 |
+--------+

Cả hai byte đều đo lường

Nhưng quan trọng nhất, cả hai hàm đều đo lường byte , không phải ký tự . Vì vậy, nếu dữ liệu được lưu trữ dưới dạng chuỗi Unicode, số byte sẽ gấp đôi số ký tự. Điều này là do các chuỗi Unicode sử dụng 2 byte cho mỗi ký tự.

Dưới đây là một ví dụ về việc chạy truy vấn về cơ bản giống với một cột Unicode trong SQL Server, sau đó trong MySQL.

Máy chủ SQL

SELECT DATALENGTH(ArtistName) AS DataLength
FROM Artists 
WHERE ArtistName = 'Lit';

Kết quả:

DataLength
----------
6         

MySQL

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

Kết quả:

+--------+
| Length |
+--------+
|      6 |
+--------+

Điều quan trọng cần lưu ý là lý do các ví dụ này trả về giá trị 6 là do kiểu dữ liệu được sử dụng trong cơ sở dữ liệu. Cả hai ví dụ cũng có thể trả về 3 nếu dữ liệu không được lưu trữ dưới dạng Unicode.

Ký tự so với byte

Trong ví dụ về SQL Server, nếu chúng tôi đã sử dụng Len() thay vào đó, nó sẽ trả về 3. Điều này là do Len() trả về số ký tự - không phải byte.

Tương tự đối với MySQL, nếu chúng ta đã sử dụng Char_Length() , nó cũng sẽ trả về 3 vì Char_Length() trả về số ký tự thay vì 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ài đặt và sử dụng Bộ công cụ Percona trên Centos 7

  2. Sự khác biệt giữa Khóa, Khóa chính, Khóa duy nhất và Chỉ mục trong MySQL

  3. Khi nào tôi nên sử dụng chỉ mục tổng hợp?

  4. Chuyển đổi ngày giờ JS thành ngày giờ MySQL

  5. Hợp nhất hai bảng trong một truy vấn SQL và làm cho các giá trị ngày trở thành duy nhất