sql >> Databáze >  >> RDS >> MariaDB

MariaDB LENGTHB() Vysvětleno

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 .


  1. Jak CONVERT() funguje v MariaDB

  2. Nelze se připojit k serveru – chyba související se sítí nebo specifická pro instanci

  3. Implementace indikátoru výkonu SQL Server pro dotazy, uložené procedury a spouštěče

  4. Jak nainstalovat phpMyAdmin