Maison > Article > base de données > Quelle fonction MySQL est la meilleure pour la sélection de la longueur des chaînes : CHAR_LENGTH() ou LENGTH() ?
Sélection de la longueur d'une chaîne MySQL
Il est possible de sélectionner des données en fonction de la longueur d'une chaîne dans MySQL. Une solution consiste à utiliser la fonction string_length(), comme indiqué dans :
<code class="sql">SELECT * FROM table ORDER BY string_length(column);</code>
Cependant, il existe une fonction plus efficace pour cette tâche : CHAR_LENGTH(). Cette fonction renvoie le nombre de caractères dans une chaîne, quelle que soit la longueur des caractères (par exemple, mono-octet ou multi-octets).
La fonction LENGTH() peut également être utilisée pour déterminer le nombre d'octets occupés par une chaîne. Cependant, pour les jeux de caractères multi-octets, CHAR_LENGTH() est l'option préférée car elle renvoie le nombre de caractères plutôt que d'octets.
Pour illustrer la différence entre LENGTH() et CHAR_LENGTH(), considérons l'exemple suivant :
SELECT LENGTH('abc'), CHAR_LENGTH('abc') FROM dual;
Pour l'encodage de caractères UTF-8, le résultat sera :
LENGTH: 3 CHAR_LENGTH: 3
Cependant, si l'encodage de caractères est modifié en UTF-16, le résultat sera :
LENGTH: 6 CHAR_LENGTH: 3
En effet, UTF-16 utilise deux octets pour coder chaque caractère, tandis que UTF-8 utilise un codage de longueur variable (1 octet pour les caractères ASCII, 2 octets pour les caractères Unicode). Par conséquent, CHAR_LENGTH() fournit une métrique plus cohérente et plus sensible aux caractères pour la longueur des chaînes dans MySQL.
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!