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

MariaDB CHARACTER_LENGTH() Vysvětleno

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

CHARACTER_LENGTH() je ve skutečnosti synonymem pro CHAR_LENGTH() , takže můžete použít kterýkoli z nich.

Syntaxe

Syntaxe vypadá takto:

CHARACTER_LENGTH(str) 

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

Příklad

Zde je základní příklad:

SELECT CHARACTER_LENGTH('Cat'); 

Výsledek:

+-------------------------+| CHARACTER_LENGTH('Kočka') |+-------------------------+| 3 |+-------------------------+

V tomto případě měl řetězec tři znaky, a tak jsme dostali 3 .

Neřetězcové

Pokud argument není řetězec, převede se na řetězec.

Zde je další příklad, který používá číslo:

SELECT CHARACTER_LENGTH(1234); 

Výsledek:

+------------------------+| CHARACTER_LENGTH(1234) |+------------------------+| 4 |+------------------------+

Porovnání s CHAR_LENGTH()

Jak již bylo zmíněno, CHARACTER_LENGTH() je synonymem pro CHAR_LENGTH() . Zde je to v porovnání s CHAR_LENGTH() :

SELECT 
    CHARACTER_LENGTH(1234),
    CHAR_LENGTH(1234); 

Výsledek:

+------------------------+-------------------+| CHARACTER_LENGTH(1234) | CHAR_LENGTH(1234) |+------------------------+------------------- +| 4 | 4 |+------------------------+-------------------+ 

Vícebajtové znaky

CHARACTER_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 CHARACTER_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 
    CHARACTER_LENGTH('อ'),
    LENGTH('อ'),
    BIT_LENGTH('อ'); 

Výsledek:

+-------------------------+---------------+---- ----------------+| CHARACTER_LENGTH('อ') | DÉLKA('อ') | BIT_LENGTH('อ') |+-------------------------+---------------+ --------------------+| 1 | 3 | 24 |+-------------------------+---------------+----- --------------+

Tento thajský znak ( ) používá 3 bajty. CHARACTER_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 CHARACTER_LENGTH() a vrátil 1 .

Nulové argumenty

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

SELECT CHARACTER_LENGTH(null); 

Výsledek:

+------------------------+| CHARACTER_LENGTH(null) |+------------------------+| NULL |+------------------------+

Chybí argument

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

SELECT CHARACTER_LENGTH(); 

Výsledek:

CHYBA 1582 (42000):Nesprávný počet parametrů ve volání nativní funkce 'CHARACTER_LENGTH'

  1. Získejte poslední den v měsíci v SQL

  2. Hledání řádků, které neobsahují číselná data v Oracle

  3. Ruby on Rails 3 Nelze se připojit k místnímu serveru MySQL přes socket '/tmp/mysql.sock' na OSX

  4. Jak získat PostgreSQL na VPS / Dedikovaný server