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

Comment CHAR_LENGTH() fonctionne dans MariaDB

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)

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() .