MySQL - Comment sélectionner des données par longueur de chaîne


302
SELECT * FROM table ORDER BY string_length(column);

Existe-t-il une fonction MySQL pour faire cela (bien sûr au lieu de string_length)?

Réponses:


492

Vous recherchez pour CHAR_LENGTH()obtenir le nombre de caractères dans une chaîne.

Pour les jeux de caractères multi-octets, vous LENGTH()obtiendrez le nombre d'octets que la chaîne occupe, tandis que vous renverrez CHAR_LENGTH()le nombre de caractères.


139
En fait, CHAR_LENGTH () devrait être un meilleur choix. Pour les jeux de caractères multi-octets, LENGTH () vous donnera le nombre d'octets que la chaîne occupe, tandis que CHAR_LENGTH () renverra le nombre de caractères.
András Szepesházi

4
sélectionnez LONGUEUR («Ö»); résultats 2 !! La réponse d'András Szepesházi est la bonne!
fubo

Il est correct d'envoyer un paramètre entier à CHAR_LENGTH, car si je retourne le nombre de caractères? , por ejemplo CHAR_LENGTH(12)return2
DarkFenix

81
select * from table order by length(column);

La documentation sur la fonction length (), ainsi que toutes les autres fonctions de chaîne, est disponible ici .



3

La fonction que j'utilise pour trouver la longueur de la chaîne est lengthutilisée comme suit:

SELECT * FROM table ORDER BY length(column);

1

J'ai utilisé ces phrases pour filtrer

SELECT table.field1, table.field2 FROM table WHERE length(field) > 10;

vous pouvez changer 10 pour un autre nombre que vous souhaitez filtrer.


-2
select * from *tablename* where 1 having length(*fieldname*)=*fieldlength*

Exemple si vous souhaitez sélectionner dans le client les entrées avec un nom plus court que 2 caractères.

select * from customer where 1 **having length(name)<2**
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.