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

Jak CHAR_LENGTH() funguje v MariaDB

V MariaDB, CHAR_LENGTH() je vestavěná řetězcová funkce, která vrací délku daného řetězcového argumentu měřenou ve znacích.

Syntaxe

Syntaxe vypadá takto:

CHAR_LENGTH(str)

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

Příklad

Zde je základní příklad:

SELECT CHAR_LENGTH('Splash');

Výsledek:

+-----------------------+
| CHAR_LENGTH('Splash') |
+-----------------------+
|                     6 |
+-----------------------+

Vícebajtové znaky

CHAR_LENGTH() Funkce počítá každý znak jako jeden znak, bez ohledu na to, kolik bajtů používá. Znaky, které používají dva, tři nebo dokonce čtyři bajty, budou proto stále počítány jako jeden znak.

To je v kontrastu s funkcemi, jako je LENGTH() , který vrací počet bajtů (pokud to není v režimu Oracle, v takovém případě dělá to samé jako CHAR_LENGTH() – vrátí počet znaků). Je to také v kontrastu s funkcemi jako BIT_LENGTH() který vrací počet bitů v řetězci.

Zde je příklad, který porovnává tyto funkce:

SELECT 
    CHAR_LENGTH('©'),
    LENGTH('©'),
    BIT_LENGTH('©');

Výsledek:

+-------------------+--------------+------------------+
| CHAR_LENGTH('©')  | LENGTH('©')  | BIT_LENGTH('©')  |
+-------------------+--------------+------------------+
|                 1 |            2 |               16 |
+-------------------+--------------+------------------+

Symbol autorských práv (© ) používá dva bajty. CHAR_LENGTH() vrátí 1, protože je to stále jen jeden znak. LENGTH() a BIT_LENGTH() na druhé straně vrátí počet bajtů a bitů.

Tento příklad byl proveden pomocí výchozího SQL_MODE . Jak bylo zmíněno, pokud by byl v režimu Oracle, LENGTH() by se chovalo jako CHAR_LENGTH() a vrátil 1 .

Nulové argumenty

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

SELECT CHAR_LENGTH(null);

Výsledek:

+-------------------+
| CHAR_LENGTH(null) |
+-------------------+
|              NULL |
+-------------------+

Chybí argument

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

SELECT CHAR_LENGTH();

Výsledek:

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

Viz také CHARACTER_LENGTH() funkce, což je synonymum pro CHAR_LENGTH() .


  1. Jak vrátit více hodnot v jednom sloupci (T-SQL)?

  2. Rozdíl mezi dvěma daty v MySQL

  3. Jak mohu zrušit všechny tabulky v databázi PostgreSQL?

  4. Nakonfigurujte režim spánku tak, aby jako primární klíč používal SYS_GUID() společnosti Oracle