MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

MariaDB CHARACTER_LENGTH() expliqué

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) 

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 que CHARACTER_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 
    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() 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 CHARACTER_LENGTH() et a renvoyé 1 .

Arguments nuls

Passer null renvoie null :

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'