Se"/> Se">

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
WBOYavant
2023-09-02 16:45:021472parcourir

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)

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)

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)

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)

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer