В MariaDB, LENGTHB()
е вградена низова функция, която връща дължината на дадения низов аргумент, измерена в байтове.
Синтаксис
Синтаксисът е така:
LENGTHB(str)
Където str
е низът, за който ще бъде върната дължината.
Пример
Ето един основен пример:
SELECT LENGTHB('café');
Резултат:
+------------------+ | LENGTHB('café') | +------------------+ | 5 | +------------------+
В този случай низът е дълъг четири знака, но LENGTHB()
върна 5
. Това е така, защото последният символ използва два байта.
Сравнение с CHAR_LENGTH()
и BIT_LENGTH()
Ето едно бързо сравнение между LENGTHB()
, CHAR_LENGTH()
(който връща броя на знаците в низа) и BIT_LENGTH()
(който връща броя на битовете в низа):
SELECT
LENGTHB('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Резултат:
+----------------+--------------------+-------------------+ | LENGTHB('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +----------------+--------------------+-------------------+ | 3 | 1 | 24 | +----------------+--------------------+-------------------+
Този тайландски знак (อ
) използва 3 байта и следователно LENGTHB()
връща 3
.
CHAR_LENGTH()
връща 1
, защото все още е само един знак и BIT_LENGTH()
връща броя на битовете (24
).
Не-низови
Ако аргументът не е низ, той се преобразува в низ.
Ето още един пример, който използва число:
SELECT LENGTHB(1234);
Резултат:
+---------------+ | LENGTHB(1234) | +---------------+ | 4 | +---------------+
Нулеви аргументи
Предаването на null
връща null
:
SELECT LENGTHB(null);
Резултат:
+---------------+ | LENGTHB(null) | +---------------+ | NULL | +---------------+
Липсващ аргумент
Извикване на LENGTHB()
без подаване на аргумент води до грешка:
SELECT LENGTHB();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LENGTHB'
LENGTHB()
срещу LENGTH()
LENGTHB()
функцията е подобна на LENGTH()
функция, с изключение на начина, по който работи в режим на Oracle.
LENGTHB()
функцията работи по същия начин, независимо в кой режим се намира (т.е. връща броя на байтовете в низа).
LENGTH()
от друга страна, се държи различно, в зависимост от това дали е в режим на Oracle или режим по подразбиране.
По-конкретно, когато е в режим по подразбиране, LENGTH()
измерва низа в байтове. Но когато е в режим на Oracle, той измерва низа в символи .