sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer CHAR_LENGTH() i MariaDB

I MariaDB, CHAR_LENGTH() er en indbygget strengfunktion, der returnerer længden af ​​det givne strengargument, målt i tegn.

Syntaks

Syntaksen ser sådan ud:

CHAR_LENGTH(str)

Hvor str er den streng, som længden vil blive returneret for.

Eksempel

Her er et grundlæggende eksempel:

SELECT CHAR_LENGTH('Splash');

Resultat:

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

Multi-Byte-tegn

CHAR_LENGTH() funktion tæller hvert tegn som et enkelt tegn, uanset hvor mange bytes den bruger. Derfor vil tegn, der bruger to, tre eller endda fire bytes stadig blive talt som ét tegn.

Dette er i modsætning til funktioner såsom LENGTH() , som returnerer antallet af bytes (medmindre det er i Oracle-tilstand, i hvilket tilfælde det gør det samme som CHAR_LENGTH() – returnerer antallet af tegn). Det er også i modsætning til funktioner som BIT_LENGTH() som returnerer antallet af bits i en streng.

Her er et eksempel, der sammenligner disse funktioner:

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

Resultat:

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

Ophavsretssymbolet (© ) bruger to bytes. CHAR_LENGTH() returnerer 1, fordi det stadig kun er et enkelt tegn. LENGTH() og BIT_LENGTH() på den anden side returnerer antallet af henholdsvis bytes og bits.

Dette eksempel blev udført med standard SQL_MODE . Som nævnt, hvis det havde været i Oracle-tilstand, LENGTH() ville have opført sig som CHAR_LENGTH() og returnerede 1 .

Nul-argumenter

Sender null returnerer null :

SELECT CHAR_LENGTH(null);

Resultat:

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

Manglende argument

Kalder CHAR_LENGTH() uden at sende et argument resulterer i en fejl:

SELECT CHAR_LENGTH();

Resultat:

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

Se også CHARACTER_LENGTH() funktion, som er et synonym for CHAR_LENGTH() .


  1. nvarchar(max) vs NText

  2. Slet hændelser fra databasens maillog i SQL Server (T-SQL)

  3. bestil efter newid() - hvordan virker det?

  4. MariaDB og Docker use cases, del 1