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()
.