I MariaDB, BIT_LENGTH()
är en inbyggd strängfunktion som returnerar längden på det givna strängargumentet i bitar.
Du anger strängen som ett argument när du anropar funktionen.
Syntax
Syntaxen ser ut så här:
BIT_LENGTH(str)
Där str
är strängen.
Exempel
Här är ett enkelt exempel:
SELECT BIT_LENGTH('A');
Resultat:
+-----------------+ | BIT_LENGTH('A') | +-----------------+ | 8 | +-----------------+
Vi kan se att bokstaven A är 8 bitar lång (dvs. 1 byte).
Här är ett exempel som använder tecken som är längre än 1 byte:
SELECT
BIT_LENGTH('©'),
BIT_LENGTH('ไ'),
BIT_LENGTH('ม้');
Resultat:
+------------------+-------------------+----------------------+ | BIT_LENGTH('©') | BIT_LENGTH('ไ') | BIT_LENGTH('ม้') | +------------------+-------------------+----------------------+ | 16 | 24 | 48 | +------------------+-------------------+----------------------+
Den andra och tredje strängen är thailändska tecken. Den tredje strängen använder ett diakritiskt tecken, vilket slutar med att antalet returnerade bitar fördubblas.
Här är karaktären med och utan det diakritiska teckenet:
SELECT
BIT_LENGTH('ม้'),
BIT_LENGTH('ม');
Resultat:
+----------------------+-------------------+ | BIT_LENGTH('ม้') | BIT_LENGTH('ม') | +----------------------+-------------------+ | 48 | 24 | +----------------------+-------------------+
Fel argumenttyp
Om argumentet inte är en sträng kommer det att konverteras till sträng.
Exempel:
SELECT
BIT_LENGTH(1),
BIT_LENGTH(12),
BIT_LENGTH(123);
Resultat:
+---------------+----------------+-----------------+ | BIT_LENGTH(1) | BIT_LENGTH(12) | BIT_LENGTH(123) | +---------------+----------------+-----------------+ | 8 | 16 | 24 | +---------------+----------------+-----------------+
Nollargument
Skickar null
returnerar null
:
SELECT BIT_LENGTH(null);
Resultat:
+------------------+ | BIT_LENGTH(null) | +------------------+ | NULL | +------------------+
Argument saknas
Anropar BIT_LENGTH()
utan att skicka ett argument resulterar det i ett fel:
SELECT BIT_LENGTH();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'BIT_LENGTH'