Dans MariaDB, BIT_LENGTH()
est une fonction de chaîne intégrée qui renvoie la longueur de l'argument de chaîne donné en bits.
Vous fournissez la chaîne comme argument lorsque vous appelez la fonction.
Syntaxe
La syntaxe ressemble à ceci :
BIT_LENGTH(str)
Où str
est la chaîne.
Exemple
Voici un exemple simple :
SELECT BIT_LENGTH('A');
Résultat :
+-----------------+ | BIT_LENGTH('A') | +-----------------+ | 8 | +-----------------+
Nous pouvons voir que la lettre A est longue de 8 bits (soit 1 octet).
Voici un exemple qui utilise des caractères de plus de 1 octet :
SELECT
BIT_LENGTH('©'),
BIT_LENGTH('ไ'),
BIT_LENGTH('ม้');
Résultat :
+------------------+-------------------+----------------------+ | BIT_LENGTH('©') | BIT_LENGTH('ไ') | BIT_LENGTH('ม้') | +------------------+-------------------+----------------------+ | 16 | 24 | 48 | +------------------+-------------------+----------------------+
Les deuxième et troisième chaînes sont des caractères thaïlandais. La troisième chaîne utilise un signe diacritique, ce qui finit par doubler le nombre de bits renvoyés.
Voici ce caractère avec et sans le signe diacritique :
SELECT
BIT_LENGTH('ม้'),
BIT_LENGTH('ม');
Résultat :
+----------------------+-------------------+ | BIT_LENGTH('ม้') | BIT_LENGTH('ม') | +----------------------+-------------------+ | 48 | 24 | +----------------------+-------------------+
Type d'argument erroné
Si l'argument n'est pas une chaîne, il sera converti en chaîne.
Exemple :
SELECT
BIT_LENGTH(1),
BIT_LENGTH(12),
BIT_LENGTH(123);
Résultat :
+---------------+----------------+-----------------+ | BIT_LENGTH(1) | BIT_LENGTH(12) | BIT_LENGTH(123) | +---------------+----------------+-----------------+ | 8 | 16 | 24 | +---------------+----------------+-----------------+
Arguments nuls
Passer null
renvoie null
:
SELECT BIT_LENGTH(null);
Résultat :
+------------------+ | BIT_LENGTH(null) | +------------------+ | NULL | +------------------+
Argument manquant
Appel de BIT_LENGTH()
sans passer d'argument génère une erreur :
SELECT BIT_LENGTH();
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'BIT_LENGTH'