Trois fonctions permettent d'avoir des informations sur la longueur d'une chaîne de caractères. Chaque fonction calcule la
longueur d'une manière particulière.
BIT_LENGTH(chaine) : retourne le nombre de bits de la chaîne. Chaque caractère est encodé sur un ou plusieurs
octets, chaque octet représente huit bits.
CHAR_LENGTH(chaine) : (ou CHARACTER_LENGTH()) retourne le nombre de caractères de la chaîne.
LENGTH(chaine) : retourne le nombre d'octets de la chaîne. Chaque caractère étant représenté par un ou plusieurs
octets (rappel : les caractères que vous pouvez utiliser dépendent de l'encodage choisi).
Code : SQL
SELECT BIT_LENGTH('élevage'),
CHAR_LENGTH('élevage'),
LENGTH('élevage'); -- Les caractères accentués sont codés sur
2 octets en UTF-8
BIT_LENGTH('élevage') CHAR_LENGTH('élevage') LENGTH('élevage')
64
7
8
A priori, dans neuf cas sur dix au moins, la fonction qui vous sera utile est donc CHAR_LENGTH().
Comparer deux chaînes
La fonction STRCMP(chaine1, chaine2) compare les deux chaînes passées en paramètres et retourne 0 si les chaînes
sont les mêmes, -1 si la première chaîne est classée avant dans l'ordre alphabétique et 1 dans le cas contraire.
Code : SQL
SELECT STRCMP('texte', 'texte') AS 'texte=texte',
STRCMP('texte','texte2') AS 'texte
STRCMP('chaine','texte') AS 'chaine
STRCMP('texte', 'chaine') AS 'texte>chaine',
STRCMP('texte3','texte24') AS 'texte3>texte24'; -- 3 est
après 24 dans l'ordre alphabétique
texte=texte textechaine texte3>texte24
0
-1
-1
1
1
Retrait et ajout de caractères
Répéter une chaîne
REPEAT(c, n) retourne le texte c, n fois.
Code : SQL
SELECT REPEAT('Ok ', 3);
REPEAT('Ok ', 3)
Ok Ok Ok
Partie 3 : Fonctions : nombres, chaînes et agrégats
164/414
www.openclassrooms.com
longueur d'une manière particulière.
BIT_LENGTH(chaine) : retourne le nombre de bits de la chaîne. Chaque caractère est encodé sur un ou plusieurs
octets, chaque octet représente huit bits.
CHAR_LENGTH(chaine) : (ou CHARACTER_LENGTH()) retourne le nombre de caractères de la chaîne.
LENGTH(chaine) : retourne le nombre d'octets de la chaîne. Chaque caractère étant représenté par un ou plusieurs
octets (rappel : les caractères que vous pouvez utiliser dépendent de l'encodage choisi).
Code : SQL
SELECT BIT_LENGTH('élevage'),
CHAR_LENGTH('élevage'),
LENGTH('élevage'); -- Les caractères accentués sont codés sur
2 octets en UTF-8
BIT_LENGTH('élevage') CHAR_LENGTH('élevage') LENGTH('élevage')
64
7
8
A priori, dans neuf cas sur dix au moins, la fonction qui vous sera utile est donc CHAR_LENGTH().
Comparer deux chaînes
La fonction STRCMP(chaine1, chaine2) compare les deux chaînes passées en paramètres et retourne 0 si les chaînes
sont les mêmes, -1 si la première chaîne est classée avant dans l'ordre alphabétique et 1 dans le cas contraire.
Code : SQL
SELECT STRCMP('texte', 'texte') AS 'texte=texte',
STRCMP('texte','texte2') AS 'texte
STRCMP('texte3','texte24') AS 'texte3>texte24'; -- 3 est
après 24 dans l'ordre alphabétique
texte=texte texte
0
-1
-1
1
1
Retrait et ajout de caractères
Répéter une chaîne
REPEAT(c, n) retourne le texte c, n fois.
Code : SQL
SELECT REPEAT('Ok ', 3);
REPEAT('Ok ', 3)
Ok Ok Ok
Partie 3 : Fonctions : nombres, chaînes et agrégats
164/414
www.openclassrooms.com
