Maison > base de données > tutoriel mysql > Comment la fonction MySQL LENGTH() mesure-t-elle la longueur d'une chaîne ?

Comment la fonction MySQL LENGTH() mesure-t-elle la longueur d'une chaîne ?

WBOY
Libérer: 2023-09-02 16:45:02
avant
1496 Les gens l'ont consulté

MySQL LENGTH() 函数如何测量字符串长度?

La fonction MySQL LENGTH() mesure la longueur de la chaîne en "octets", ce qui signifie qu'elle n'est pas sécurisée pour plusieurs octets. La différence de résultats entre les fonctions multi-octets sécurisées telles que CHAR_LENGTH() ou CHARACTER_LENGTH() et la fonction LENGTH() est particulièrement pertinente pour Unicode, où la plupart des caractères sont codés sur deux octets, ou pour UTF-8. Le nombre d'octets varie . Par exemple, si la chaîne contient quatre caractères de 2 octets, la fonction LENGTH() renvoie 8 et la fonction CHAR_LENGTH() ou CHARACTER_LENGTH() renvoie 4. Comme le montre l'exemple ci-dessous -

Example

mysql> Select LENGTH('tutorialspoint');
+--------------------------+
| LENGTH('tutorialspoint') |
+--------------------------+
|                       14 |
+--------------------------+
1 row in set (0.00 sec)
Copier après la connexion

Le résultat défini ci-dessus montre que la longueur de la chaîne "tutorialspoint" est de 14 car elle n'a pas été convertie en caractères Unicode. La requête suivante le convertit en caractères Unicode -

mysql> SET @A = CONVERT('tutorialspoint' USING ucs2);
Query OK, 0 rows affected (0.02 sec)
Copier après la connexion

Après avoir converti la chaîne en Unicode, le résultat est 28 au lieu de 14 car en Unicode un seul caractère prend 2 octets comme indiqué ci-dessous -

mysql> Select LENGTH(@A);
+------------+
| LENGTH(@A) |
+------------+
|         28 |
+------------+
1 row in set (0.00 sec)
Copier après la connexion

Mais CHAR_LENGTH() Le résultat donné est 14 car il s'agit d'une fonction sécurisée multi-octets comme indiqué ci-dessous -

mysql> Select CHAR_LENGTH(@A);
+-----------------+
| CHAR_LENGTH(@A) |
+-----------------+
|              14 |
+-----------------+
1 row in set (0.00 sec)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal