Dans MariaDB, CHAR_LENGTH()
est une fonction de chaîne intégrée qui renvoie la longueur de l'argument de chaîne donné, mesurée en caractères.
Syntaxe
La syntaxe ressemble à ceci :
CHAR_LENGTH(str)
Où str
est la chaîne dont la longueur sera renvoyée.
Exemple
Voici un exemple de base :
SELECT CHAR_LENGTH('Splash');
Résultat :
+-----------------------+ | CHAR_LENGTH('Splash') | +-----------------------+ | 6 | +-----------------------+
Caractères multi-octets
Le CHAR_LENGTH()
La fonction compte chaque caractère comme un seul caractère, quel que soit le nombre d'octets qu'elle utilise. Par conséquent, les caractères qui utilisent deux, trois ou même quatre octets seront toujours comptés comme un seul caractère.
Ceci est en contraste avec des fonctions telles que LENGTH()
, qui renvoie le nombre d'octets (sauf s'il est en mode Oracle, auquel cas il fait la même chose que CHAR_LENGTH()
– renvoie le nombre de caractères). C'est aussi en contraste avec des fonctions comme BIT_LENGTH()
qui renvoie le nombre de bits dans une chaîne.
Voici un exemple qui compare ces fonctions :
SELECT
CHAR_LENGTH('©'),
LENGTH('©'),
BIT_LENGTH('©');
Résultat :
+-------------------+--------------+------------------+ | CHAR_LENGTH('©') | LENGTH('©') | BIT_LENGTH('©') | +-------------------+--------------+------------------+ | 1 | 2 | 16 | +-------------------+--------------+------------------+
Le symbole de copyright (©
) utilise deux octets. CHAR_LENGTH()
renvoie 1, car il ne s'agit toujours que d'un seul caractère. LENGTH()
et BIT_LENGTH()
d'autre part, renvoie respectivement le nombre d'octets et de bits.
Cet exemple a été fait en utilisant le SQL_MODE
par défaut . Comme mentionné, s'il avait été en mode Oracle, LENGTH()
se serait comporté comme CHAR_LENGTH()
et a renvoyé 1
.
Arguments nuls
Passer null
renvoie null
:
SELECT CHAR_LENGTH(null);
Résultat :
+-------------------+ | CHAR_LENGTH(null) | +-------------------+ | NULL | +-------------------+
Argument manquant
Appel de CHAR_LENGTH()
sans passer d'argument génère une erreur :
SELECT CHAR_LENGTH();
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CHAR_LENGTH'
Voir aussi le CHARACTER_LENGTH()
fonction, qui est synonyme de CHAR_LENGTH()
.