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

Jak funguje OCTET_LENGTH() v MariaDB

V MariaDB, OCTET_LENGTH() je vestavěná řetězcová funkce, která vrací délku daného řetězcového argumentu měřenou v oktetech (bajtech).

OCTET_LENGTH() je synonymem pro LENGTHB() .

Je to také synonymum pro LENGTH() když není v režimu Oracle (LENGTH() se v režimu Oracle chová jinak).

Syntaxe

Syntaxe vypadá takto:

OCTET_LENGTH(str)

Kde str je řetězec, pro který bude vrácena délka.

Příklad

Zde je základní příklad:

SELECT OCTET_LENGTH('café');

Výsledek:

+-----------------------+
| OCTET_LENGTH('café')  |
+-----------------------+
|                     5 |
+-----------------------+

V tomto případě byl řetězec dlouhý čtyři znaky, ale OCTET_LENGTH() vrátil 5 . Důvodem je, že poslední znak používá dva oktety/bajty.

Porovnání s CHAR_LENGTH() a BIT_LENGTH()

Zde je rychlé srovnání mezi OCTET_LENGTH() , CHAR_LENGTH() (což vrátí počet znaků v řetězci) a BIT_LENGTH() (což vrací počet bitů v řetězci):

SELECT 
    OCTET_LENGTH('อ'),
    CHAR_LENGTH('อ'),
    BIT_LENGTH('อ');

Výsledek:

+---------------------+--------------------+-------------------+
| OCTET_LENGTH('อ')   | CHAR_LENGTH('อ')   | BIT_LENGTH('อ')   |
+---------------------+--------------------+-------------------+
|                   3 |                  1 |                24 |
+---------------------+--------------------+-------------------+

Tento thajský znak ( ) používá 3 bajty, a proto OCTET_LENGTH() vrátí 3 .

CHAR_LENGTH() vrátí počet znaků (1 ) 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 OCTET_LENGTH(1234);

Výsledek:

+--------------------+
| OCTET_LENGTH(1234) |
+--------------------+
|                  4 |
+--------------------+

Nulové argumenty

Předávání null vrátí null :

SELECT OCTET_LENGTH(null);

Výsledek:

+--------------------+
| OCTET_LENGTH(null) |
+--------------------+
|               NULL |
+--------------------+

Chybí argument

Volání OCTET_LENGTH() bez předání argumentu dojde k chybě:

SELECT OCTET_LENGTH();

Výsledek:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'OCTET_LENGTH'

  1. Jak nainstaluji pouze klientské nástroje pro PostgreSQL na Windows?

  2. Jak definovat primární klíč automatického zvýšení na serveru SQL Server

  3. Použití dat ODBC v RapidMiner

  4. MariaDB DAY() Vysvětleno