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

MariaDB CHARACTER_LENGTH() Forklaret

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

CHARACTER_LENGTH() er faktisk et synonym for CHAR_LENGTH() , så du kan bruge begge dele.

Syntaks

Syntaksen ser sådan ud:

CHARACTER_LENGTH(str) 

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

Eksempel

Her er et grundlæggende eksempel:

SELECT CHARACTER_LENGTH('Cat'); 

Resultat:

+------------------------+| CHARACTER_LENGTH('Kat') |+-------------------------+| 3 |+--------------------------------+

I dette tilfælde var strengen tre tegn lang, så vi fik 3 .

Ikke-strenge

Hvis argumentet ikke er en streng, konverteres det til en streng.

Her er et andet eksempel, der bruger et tal:

SELECT CHARACTER_LENGTH(1234); 

Resultat:

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

Sammenligning med CHAR_LENGTH()

Som nævnt, CHARACTER_LENGTH() er et synonym for CHAR_LENGTH() . Her er det i sammenligning med CHAR_LENGTH() :

SELECT 
    CHARACTER_LENGTH(1234),
    CHAR_LENGTH(1234); 

Resultat:

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

Multi-Byte-tegn

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

Resultat:

+------------------------+--------------+---- ---------------+| CHARACTER_LENGTH('อ') | LENGTH('อ') | BIT_LENGTH('อ') |+------------------------+--------------+ -------------------+| 1 | 3 | 24 |+-------------------------+---------------- --------------+

Dette thailandske tegn ( ) bruger 3 bytes. CHARACTER_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 CHARACTER_LENGTH() og returnerede 1 .

Nul-argumenter

Sender null returnerer null :

SELECT CHARACTER_LENGTH(null); 

Resultat:

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

Manglende argument

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

SELECT CHARACTER_LENGTH(); 

Resultat:

FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'CHARACTER_LENGTH'

  1. Sådan installeres MariaDB på Rocky Linux og AlmaLinux

  2. Sådan uploader og downloader du filer PHP og MySQL

  3. WHERE IS NULL, IS NOT NULL eller NO WHERE-sætning afhængigt af SQL Server-parameterværdien

  4. Sådan indsætter du mere end 1000 værdier i en Oracle IN-klausul