Trong MariaDB, LENGTHB()
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 byte.
Cú pháp
Cú pháp như sau:
LENGTHB(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 LENGTHB('café');
Kết quả:
+------------------+ | LENGTHB('café') | +------------------+ | 5 | +------------------+
Trong trường hợp này, chuỗi dài bốn ký tự nhưng LENGTHB()
trả về 5
. Điều này là do ký tự cuối cùng sử dụng hai byte.
So sánh với CHAR_LENGTH()
và BIT_LENGTH()
Dưới đây là so sánh nhanh giữa LENGTHB()
, 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
LENGTHB('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Kết quả:
+----------------+--------------------+-------------------+ | LENGTHB('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +----------------+--------------------+-------------------+ | 3 | 1 | 24 | +----------------+--------------------+-------------------+
Ký tự tiếng Thái này (อ
) sử dụng 3 byte và do đó LENGTHB()
trả về 3
.
CHAR_LENGTH()
trả về 1
, bởi vì nó vẫn chỉ là một ký tự duy nhất 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 LENGTHB(1234);
Kết quả:
+---------------+ | LENGTHB(1234) | +---------------+ | 4 | +---------------+
Đối số rỗng
Chuyển null
trả về null
:
SELECT LENGTHB(null);
Kết quả:
+---------------+ | LENGTHB(null) | +---------------+ | NULL | +---------------+
Thiếu đối số
Đang gọi LENGTHB()
mà không chuyển đối số dẫn đến lỗi:
SELECT LENGTHB();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LENGTHB'
LENGTHB()
so với LENGTH()
LENGTHB()
chức năng tương tự với LENGTH()
, ngoại trừ cách nó hoạt động trong chế độ Oracle.
LENGTHB()
hàm hoạt động theo cùng một cách, bất kể nó ở chế độ nào (tức là nó trả về số byte trong chuỗi).
LENGTH()
mặt khác, hoạt động khác nhau, tùy thuộc vào việc nó ở chế độ Oracle hay chế độ mặc định.
Cụ thể, khi ở chế độ mặc định, LENGTH()
đo chuỗi theo byte. Nhưng khi ở chế độ Oracle, nó đo chuỗi bằng ký tự .