Dans MySQL, le CHARACTER_LENGTH()
La fonction renvoie la longueur d'une chaîne, mesurée en caractères.
CHARACTER_LENGTH()
est un synonyme de CHAR_LENGTH()
fonction.
Syntaxe
La syntaxe ressemble à ceci :
CHARACTER_LENGTH(str)
Où str
est la chaîne dont la longueur sera renvoyée.
Exemple 1 - Utilisation de base
Voici un exemple d'utilisation de base :
SELECT CHARACTER_LENGTH('Cat');
Et voici le résultat :
+-------------------------+ | CHARACTER_LENGTH('Cat') | +-------------------------+ | 3 | +-------------------------+
Exemple 2 – Blancs de fin
Notez que CHARACTER_LENGTH()
inclut des espaces à la fin (par exemple, des espaces à la fin de la chaîne) dans ses calculs.
Donc si on ajoute un espace à la fin de l'exemple précédent :
SELECT CHARACTER_LENGTH('Cat ');
Voici le résultat :
+--------------------------+ | CHARACTER_LENGTH('Cat ') | +--------------------------+ | 4 | +--------------------------+
Mais nous pouvons toujours supprimer cet espace de fin en utilisant soit le TRIM()
fonction ou la fonction RTRIM()
fonction :
SELECT CHARACTER_LENGTH(TRIM('Cat ')) AS 'TRIM', CHARACTER_LENGTH(RTRIM('Cat ')) AS 'RTRIM';
Voici le résultat :
+------+-------+ | TRIM | RTRIM | +------+-------+ | 3 | 3 | +------+-------+
Exemple 3 – Espaces vides
Le même concept s'applique aux blancs de tête. Vous pouvez utiliser soit TRIM
ou LTRIM
:
SELECT CHARACTER_LENGTH(TRIM(' Cat')) AS 'TRIM', CHARACTER_LENGTH(LTRIM(' Cat')) AS 'LTRIM';
Résultat :
+------+-------+ | TRIM | LTRIM | +------+-------+ | 3 | 3 | +------+-------+
Exemple 4 – Types de données
Peu importe le type de données sous lequel la chaîne est stockée, elle renverra toujours le même résultat. Ceci est en contraste avec le LENGTH()
fonction, qui renverra le double du nombre de caractères dans les cas où les données sont stockées sous forme de chaîne Unicode.
Dans l'exemple suivant, la colonne ArtistName utilise varchar(255) :
SELECT CHARACTER_LENGTH(ArtistName) Result FROM Artists WHERE ArtistName = 'Lit';
Voici le résultat :
+--------+ | Result | +--------+ | 3 | +--------+
Et si on modifie le ArtistName
colonne pour utiliser Unicode :
ALTER TABLE Artists MODIFY COLUMN ArtistName VARCHAR(255) unicode;
Et relancez la même requête :
SELECT CHARACTER_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
Nous obtenons toujours le même résultat :
+--------+ | Result | +--------+ | 3 | +--------+
Cependant, si nous avions utilisé le LENGTH()
fonction, le résultat serait 6. C'est parce que les chaînes Unicode stockent 2 octets par caractère, et le LENGTH()
renvoie la longueur mesurée en octets.