Trong MariaDB, OCTET_LENGTH()
là một hàm chuỗi tích hợp trả về độ dài của đối số chuỗi đã cho, được đo bằng octet (byte).
OCTET_LENGTH()
là từ đồng nghĩa với LENGTHB()
.
Nó cũng là từ đồng nghĩa với LENGTH()
khi không ở chế độ Oracle (LENGTH()
hoạt động khác nhau trong chế độ Oracle).
Cú pháp
Cú pháp như sau:
OCTET_LENGTH(str)
Ở đâu str
là chuỗi mà độ dài sẽ được trả về.
Ví dụ
Đây là một ví dụ cơ bản:
SELECT OCTET_LENGTH('café');
Kết quả:
+-----------------------+ | OCTET_LENGTH('café') | +-----------------------+ | 5 | +-----------------------+
Trong trường hợp này, chuỗi dài bốn ký tự nhưng OCTET_LENGTH()
trả về 5
. Điều này là do ký tự cuối cùng sử dụng hai octet / byte.
So sánh với CHAR_LENGTH()
và BIT_LENGTH()
Dưới đây là so sánh nhanh giữa OCTET_LENGTH()
, CHAR_LENGTH()
(trả về số lượng ký tự trong chuỗi) và BIT_LENGTH()
(trả về số lượng bit trong chuỗi):
SELECT
OCTET_LENGTH('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Kết quả:
+---------------------+--------------------+-------------------+ | OCTET_LENGTH('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +---------------------+--------------------+-------------------+ | 3 | 1 | 24 | +---------------------+--------------------+-------------------+
Ký tự tiếng Thái này (อ
) sử dụng 3 byte và do đó OCTET_LENGTH()
trả về 3
.
CHAR_LENGTH()
trả về số ký tự (1
) và BIT_LENGTH()
trả về số bit (24
).
Không phải chuỗi
Nếu đối số không phải là một chuỗi, nó sẽ được chuyển đổi thành một chuỗi.
Dưới đây là một ví dụ khác sử dụng một số:
SELECT OCTET_LENGTH(1234);
Kết quả:
+--------------------+ | OCTET_LENGTH(1234) | +--------------------+ | 4 | +--------------------+
Đối số rỗng
Chuyển null
trả về null
:
SELECT OCTET_LENGTH(null);
Kết quả:
+--------------------+ | OCTET_LENGTH(null) | +--------------------+ | NULL | +--------------------+
Thiếu đối số
Đang gọi OCTET_LENGTH()
mà không chuyển đối số dẫn đến lỗi:
SELECT OCTET_LENGTH();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'OCTET_LENGTH'