Dans MariaDB, CHARACTER_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.
CHARACTER_LENGTH()
est en fait un synonyme de CHAR_LENGTH()
, vous pouvez donc utiliser l'un ou l'autre.
Syntaxe
La syntaxe ressemble à ceci :
CHARACTER_LENGTH(str)
Où str
est la chaîne dont la longueur sera renvoyée.
Exemple
Voici un exemple de base :
SELECT CHARACTER_LENGTH('Cat');
Résultat :
+-------------------------+| CHARACTER_LENGTH('Chat') |+-------------------------+| 3 |+-------------------------+
Dans ce cas, la chaîne comportait trois caractères, et nous avons donc obtenu 3
.
Non-chaînes
Si l'argument n'est pas une chaîne, il est converti en chaîne.
Voici un autre exemple qui utilise un nombre :
SELECT CHARACTER_LENGTH(1234);
Résultat :
+------------------------+| CHARACTER_LENGTH(1234) |+------------------------+| 4 |+------------------------+
Comparaison avec CHAR_LENGTH()
Comme mentionné, CHARACTER_LENGTH()
est un synonyme de CHAR_LENGTH()
. Le voici en comparaison avec CHAR_LENGTH()
:
SELECT
CHARACTER_LENGTH(1234),
CHAR_LENGTH(1234);
Résultat :
+-----------------------+----------------------------+| CHARACTER_LENGTH(1234) | CHAR_LENGTH(1234) |+------------------------+-------------------------------- +| 4 | 4 |+-----------------------+--------------+Caractères multi-octets
Le
CHARACTER_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 queCHARACTER_LENGTH()
– renvoie le nombre de caractères). C'est aussi en contraste avec des fonctions commeBIT_LENGTH()
qui renvoie le nombre de bits dans une chaîne.Voici un exemple qui compare ces fonctions :
SELECT CHARACTER_LENGTH('อ'), LENGTH('อ'), BIT_LENGTH('อ');
Résultat :
+-------------------------+---------------+---- ---------------+| CHARACTER_LENGTH('อ') | LONGUEUR('อ') | BIT_LENGTH('อ') |+------------------------------+---------------+ -------------------+| 1 | 3 | 24 |+-------------------------+---------------+----- --------------+Ce caractère thaï (
อ
) utilise 3 octets.CHARACTER_LENGTH()
renvoie 1, car il ne s'agit toujours que d'un seul caractère.LENGTH()
etBIT_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é commeCHARACTER_LENGTH()
et a renvoyé1
.Arguments nuls
Passer
null
renvoienull
:SELECT CHARACTER_LENGTH(null);
Résultat :
+------------------------+| CHARACTER_LENGTH(null) |+------------------------+| NULL |+------------------------+Argument manquant
Appel de
CHARACTER_LENGTH()
sans passer d'argument génère une erreur :SELECT CHARACTER_LENGTH();
Résultat :
ERREUR 1582 (42000) :Nombre de paramètres incorrect dans l'appel à la fonction native 'CHARACTER_LENGTH'