Maison >base de données >tutoriel mysql >Comment trier les données par longueur de chaîne dans MySQL ?
Tentative de requête initiale :
Considérez la requête suivante, qui tente de trier données par longueur de chaîne :
<code class="sql">SELECT * FROM table ORDER BY string_length(column);</code>
Cependant, cette requête produit une erreur. Malgré l'existence d'une fonction string_length dans MySQL, elle ne peut pas être utilisée pour trier les données.
Solution : Utiliser CHAR_LENGTH()
Pour trier les données par longueur de chaîne, vous besoin d'utiliser la fonction CHAR_LENGTH(). Contrairement à string_length, CHAR_LENGTH() renvoie le nombre de caractères dans une chaîne, pas le nombre d'octets.
Requête mise à jour :
<code class="sql">SELECT * FROM table ORDER BY CHAR_LENGTH(column);</code>
Différence entre LENGTH() et CHAR_LENGTH()
Pour les jeux de caractères multi-octets (par exemple, UTF-8), LENGTH() renverra le nombre d'octets dans une chaîne, tandis que CHAR_LENGTH() renverra le nombre de caractères. Par conséquent, pour les jeux de caractères multi-octets, vous devez utiliser CHAR_LENGTH() pour des calculs précis de la longueur des chaînes.
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!