I MariaDB, LENGTHB()
er en indbygget strengfunktion, der returnerer længden af det givne strengargument, målt i bytes.
Syntaks
Syntaksen ser sådan ud:
LENGTHB(str)
Hvor str
er den streng, som længden vil blive returneret for.
Eksempel
Her er et grundlæggende eksempel:
SELECT LENGTHB('café');
Resultat:
+------------------+ | LENGTHB('café') | +------------------+ | 5 | +------------------+
I dette tilfælde var strengen fire tegn lang, men LENGTHB()
returnerede 5
. Dette skyldes, at det sidste tegn bruger to bytes.
Sammenligning med CHAR_LENGTH()
og BIT_LENGTH()
Her er en hurtig sammenligning mellem LENGTHB()
, CHAR_LENGTH()
(som returnerer antallet af tegn i strengen) og BIT_LENGTH()
(som returnerer antallet af bits i strengen):
SELECT
LENGTHB('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Resultat:
+----------------+--------------------+-------------------+ | LENGTHB('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +----------------+--------------------+-------------------+ | 3 | 1 | 24 | +----------------+--------------------+-------------------+
Dette thailandske tegn (อ
) bruger 3 bytes, og derfor LENGTHB()
returnerer 3
.
CHAR_LENGTH()
returnerer 1
, fordi det stadig kun er et enkelt tegn og BIT_LENGTH()
returnerer antallet af bit (24
).
Ikke-strenge
Hvis argumentet ikke er en streng, konverteres det til en streng.
Her er et andet eksempel, der bruger et tal:
SELECT LENGTHB(1234);
Resultat:
+---------------+ | LENGTHB(1234) | +---------------+ | 4 | +---------------+
Nul-argumenter
Sender null
returnerer null
:
SELECT LENGTHB(null);
Resultat:
+---------------+ | LENGTHB(null) | +---------------+ | NULL | +---------------+
Manglende argument
Kalder LENGTHB()
uden at sende et argument resulterer i en fejl:
SELECT LENGTHB();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LENGTHB'
LENGTHB()
vs LENGTH()
LENGTHB()
funktionen ligner LENGTH()
funktion, bortset fra hvordan det fungerer i Oracle-tilstand.
LENGTHB()
funktion fungerer på samme måde, uanset hvilken tilstand den er i (dvs. den returnerer antallet af bytes i strengen).
LENGTH()
på den anden side opfører sig anderledes, afhængigt af om den er i Oracle-tilstand eller standardtilstand.
Specifikt, når du er i standardtilstand, LENGTH()
måler strengen i bytes. Men når den er i Oracle-tilstand, måler den strengen i tegn .