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

Fonctionnement de la fonction CHARACTER_LENGTH() dans MySQL

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)

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.