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 somCHARACTER_LENGTH()
– returnerer antallet af tegn). Det er også i modsætning til funktioner somBIT_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()
ogBIT_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 somCHARACTER_LENGTH()
og returnerede1
.Nul-argumenter
Sender
null
returnerernull
: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'