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 .