MySQL a de nombreux opérateurs et fonctions qui retournent une chaîne. Cette section répond à la question : quels sont le jeu de caractères et la collation d'une telle chaîne?
Pour des fonctions simples qui prennent une chaîne en entrée
et renvoient une chaîne comme résultat en sortie, le jeu de
caractères du résultat et sa collation sont les mêmes que
deux de l'argument principal. Par exemple,
UPPER(X)
renvoie une chaîne dont la chaîne
de caractères et la collation sont les mêmes que celles de
X
.
Le même concept s'applique à : INSTR()
,
LCASE()
, LOWER()
,
LTRIM()
, MID()
,
REPEAT()
, REPLACE()
,
REVERSE()
, RIGHT()
,
RPAD()
, RTRIM()
,
SOUNDEX()
, SUBSTRING()
,
TRIM()
, UCASE()
,
UPPER()
. Veuillez aussi noter que la fonction
REPLACE()
, contrairement à toutes les autres
fonctions, ignore la collation de la chaîne d'entrée et
effectue une comparaison insensible à la casse à chaque fois.
Pour des opérations qui combinent des entrées de chaînes multiples et renvoient une chaîne seule en sortie, les "règles d'agrégation" du standard SQL99 s'appliquent. Les règles sont :
Si COLLATE X
est explicitement donné,
alors on utilise X
.
Si COLLATE X
et COLLATE
Y
sont explicitement donnés, alors erreur.
Sinon, si toutes les collations sont la même collation
X
, alors utilise X
.
Sinon, le résultat n'a pas de collation.
Par exemple, avec CASE ... WHEN a THEN b WHEN b THEN c
COLLATE X END
, la collation résultante est
X
. L'exemple s'applique à :
CONCAT()
, GREATEST()
,
IF()
, LEAST()
,
CASE
, UNION
,
||
, ELT()
.
Pour des opérations qui convertissent vers des données caractères, le jeu de caractères de la chaîne résultante et sa collation sont dans le jeu de caractères de connexion et ont la collation de connexion.
Ceci s'applique à : CHAR()
,
CAST()
, CONV()
,
FORMAT()
. HEX()
,
SPACE()
.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.