I MariaDB, BIT_LENGTH()
er en indbygget strengfunktion, der returnerer længden af det givne strengargument i bits.
Du angiver strengen som et argument, når du kalder funktionen.
Syntaks
Syntaksen ser sådan ud:
BIT_LENGTH(str)
Hvor str
er strengen.
Eksempel
Her er et simpelt eksempel:
SELECT BIT_LENGTH('A');
Resultat:
+-----------------+ | BIT_LENGTH('A') | +-----------------+ | 8 | +-----------------+
Vi kan se, at bogstavet A er 8 bit langt (dvs. 1 byte).
Her er et eksempel, der bruger tegn, der er længere end 1 byte:
SELECT
BIT_LENGTH('©'),
BIT_LENGTH('ไ'),
BIT_LENGTH('ม้');
Resultat:
+------------------+-------------------+----------------------+ | BIT_LENGTH('©') | BIT_LENGTH('ไ') | BIT_LENGTH('ม้') | +------------------+-------------------+----------------------+ | 16 | 24 | 48 | +------------------+-------------------+----------------------+
Den anden og tredje streng er thailandske tegn. Den tredje streng bruger et diakritisk mærke, som ender med at fordoble antallet af returnerede bits.
Her er den karakter med og uden det diakritiske tegn:
SELECT
BIT_LENGTH('ม้'),
BIT_LENGTH('ม');
Resultat:
+----------------------+-------------------+ | BIT_LENGTH('ม้') | BIT_LENGTH('ม') | +----------------------+-------------------+ | 48 | 24 | +----------------------+-------------------+
Forkert argumenttype
Hvis argumentet ikke er en streng, vil det blive konverteret til streng.
Eksempel:
SELECT
BIT_LENGTH(1),
BIT_LENGTH(12),
BIT_LENGTH(123);
Resultat:
+---------------+----------------+-----------------+ | BIT_LENGTH(1) | BIT_LENGTH(12) | BIT_LENGTH(123) | +---------------+----------------+-----------------+ | 8 | 16 | 24 | +---------------+----------------+-----------------+
Nul-argumenter
Sender null
returnerer null
:
SELECT BIT_LENGTH(null);
Resultat:
+------------------+ | BIT_LENGTH(null) | +------------------+ | NULL | +------------------+
Manglende argument
Kalder BIT_LENGTH()
uden at sende et argument resulterer det i en fejl:
SELECT BIT_LENGTH();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'BIT_LENGTH'