V MariaDB, LENGTHB()
je vestavěná řetězcová funkce, která vrací délku daného řetězcového argumentu měřenou v bajtech.
Syntaxe
Syntaxe vypadá takto:
LENGTHB(str)
Kde str
je řetězec, pro který bude vrácena délka.
Příklad
Zde je základní příklad:
SELECT LENGTHB('café');
Výsledek:
+------------------+ | LENGTHB('café') | +------------------+ | 5 | +------------------+
V tomto případě měl řetězec čtyři znaky, ale LENGTHB()
vrátil 5
. Důvodem je, že poslední znak používá dva bajty.
Porovnání s CHAR_LENGTH()
a BIT_LENGTH()
Zde je rychlé srovnání mezi LENGTHB()
, CHAR_LENGTH()
(což vrátí počet znaků v řetězci) a BIT_LENGTH()
(což vrací počet bitů v řetězci):
SELECT
LENGTHB('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Výsledek:
+----------------+--------------------+-------------------+ | LENGTHB('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +----------------+--------------------+-------------------+ | 3 | 1 | 24 | +----------------+--------------------+-------------------+
Tento thajský znak (อ
) používá 3 bajty, a proto LENGTHB()
vrátí 3
.
CHAR_LENGTH()
vrátí 1
, protože je to stále jen jeden znak a BIT_LENGTH()
vrátí počet bitů (24
).
Neřetězcové
Pokud argument není řetězec, převede se na řetězec.
Zde je další příklad, který používá číslo:
SELECT LENGTHB(1234);
Výsledek:
+---------------+ | LENGTHB(1234) | +---------------+ | 4 | +---------------+
Nulové argumenty
Předávání null
vrátí null
:
SELECT LENGTHB(null);
Výsledek:
+---------------+ | LENGTHB(null) | +---------------+ | NULL | +---------------+
Chybí argument
Volání LENGTHB()
bez předání argumentu dojde k chybě:
SELECT LENGTHB();
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LENGTHB'
LENGTHB()
vs LENGTH()
LENGTHB()
funkce je podobná funkci LENGTH()
kromě toho, jak funguje v režimu Oracle.
LENGTHB()
funkce funguje stejným způsobem, bez ohledu na to, v jakém režimu se nachází (tj. vrací počet bajtů v řetězci).
LENGTH()
na druhou stranu se chová odlišně v závislosti na tom, zda je v režimu Oracle nebo výchozím režimu.
Konkrétně ve výchozím režimu LENGTH()
měří řetězec v bajtech. Ale v režimu Oracle měří řetězec v znakech .