Dans le langage SQL la fonction LENGTH() permet de calculer la longueur d’une chaîne de caractères.
A noter : la fonction se base sur le nombre d’octets. Un caractère multi-octet compte comme un seul caractère. Autrement dit, un caractère tel que “œ” compte comme un seul caractère.
Nom de la fonction selon le Système de Gestion de Base de Données (SGBD) :
- LENGTH() MySQL, PostgreSQL et Oracle
- LEN() SQL Server
Syntaxe
Cette fonction SQL s’utilise avec une structure suivante :
SELECT LENGTH('exemple');
Résultat :
7
Exemple
Pour le bien de ce tutoriel, nous allons considérer une table utilisateur qui contient le login, la ville et le numéro de téléphone d’un utilisateur.
Table utilisateur :
id | login | ville | telephone |
---|---|---|---|
1 | aa | Paris | 123 |
2 | paul | Lyon | 06.00.00.00.00 |
3 | leolebeau | Lyon | 0600000000 |
4 | john | Lille | 1 |
Connaître la longueur du login
Il est possible de connaître la longueur du login de chaque utilisateur grâce à la fonction LENGTH(). Cette longueur peut être affichée en utilisant une requête SQL telle que celle-ci:
SELECT id, login, LENGTH(login) AS login_length, ville, telephone FROM utilisateur
Résultat :
id | login | login_length | ville | telephone |
---|---|---|---|---|
1 | aa | 2 | Paris | 123 |
2 | paul | 4 | Lyon | 06.00.00.00.00 |
3 | leolebeau | 9 | Lyon | 0600000000 |
4 | john | 4 | Lille | 1 |
Extraire les utilisateur avec un login inférieur à 5 caractères
Imaginons que pour une raison quelconque, les utilisateurs ayant un login de moins de 5 caractères ne soient pas assez sécurisés. Il est possible d’extraire la liste de ces utilisateurs avec la fonction LENGTH(), comme le montre la requête suivante:
SELECT id, login, ville, telephone FROM utilisateur WHERE LENGTH(login) < 5
Résultat :
id | login | ville | telephone |
---|---|---|---|
1 | aa | Paris | 123 |
2 | paul | Lyon | 06.00.00.00.00 |
4 | john | Lille | 1 |
Extraire les utilisateurs avec un numéro de téléphone inférieur à 10 caractères
Si un numéro de téléphone fait moins de 10 caractères, c’est peut-être parce que l’utilisateur l’a mal indiqué. Il est donc possible d’extraire ces utilisateurs avec la requête SQL suivante :
SELECT id, login, ville, telephone FROM utilisateur WHERE LENGTH(telephone) < 10
Résultat :
id | login | ville | telephone |
---|---|---|---|
1 | aa | Paris | 123 |
4 | john | Lille | 1 |