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 |