Les fonctions qui traitent les chaînes de caractères retournent
NULL
si la longueur du résultat finit par
dépasser la taille maximale du paramètre
max_allowed_packet
, défini dans la
configuration du serveur. See Section 7.5.2, « Réglage des paramètres du serveur ».
Pour les fonctions qui opèrent sur des positions à l'intérieur d'une chaîne, la position initiale est 0.
Retourne le code ASCII du premier caractère de la chaîne de
caractères str
. Retourne
0
si la chaîne de caractère
str
est vide. Retourne
NULL
si la chaîne de caractères
str
est NULL
.
ASCII()
fonctionne avec des valeurs
numériques entre 0
et
255
.
mysql>SELECT ASCII('2');
-> 50 mysql>SELECT ASCII(2);
-> 50 mysql>SELECT ASCII('dx');
-> 100
Voir aussi la fonction ORD()
.
Retourne une chaîne de caractères représentant la valeur
binaire de l'argument N
, où l'argument
N
est un nombre de type
BIGINT
. Cette fonction est un équivalent
de CONV(N,10,2)
. Retourne
NULL
si l'argument N
est
NULL
.
mysql> SELECT BIN(12);
-> '1100'
Retourne le nombre de bits de la chaîne de caractères
str
.
mysql> SELECT BIT_LENGTH('text');
-> 32
BIT_LENGTH()
a été ajouté en MySQL
4.0.2.
La fonction CHAR()
interprète les
arguments comme des entiers et retourne une chaîne de
caractères, constituée des caractères, identifiés par leur
code ASCII. Les valeurs NULL
sont
ignorées :
mysql>SELECT CHAR(77,121,83,81,'76');
-> 'MySQL' mysql>SELECT CHAR(77,77.3,'77.3');
-> 'MMM'
Retourne le nombre de caractères de la chaîne
str
: Un caractère multi-octets compte
comme un seul caractère. Cela signifie que pour une chaîne
contenant 5 caractères de 2 octets,
LENGTH()
retournera 10
,
alors que CHAR_LENGTH()
retournera
5
.
CHARACTER_LENGTH()
est un synonyme de
CHAR_LENGTH()
.
Compresse une chaîne. Cette fonction requiert la présence de
la bibliothèque zlib
. Sinon, la valeur
retournée sera toujours NULL
.
mysql>SELECT LENGTH(COMPRESS(REPEAT('a',1000)));
-> 21 mysql>SELECT LENGTH(COMPRESS(''));
-> 0 mysql>SELECT LENGTH(COMPRESS('a'));
-> 13 mysql>SELECT LENGTH(COMPRESS(REPEAT('a',16)));
-> 15
La chaîne compressée est stockée de cette manière :
Les chaînes vides sont stockées comme des chaînes vides.
Les chaînes non-vides sont stockées avec 4 octets de
plus, indiquant la taille de la chaîne non compressée,
suivie de la chaîne compressée. Si la chaîne se termine
avec des espaces, un point supplémentaire
‘.
’ est ajouté, pour
éviter que les espaces terminaux soient supprimés de la
chaîne. N'utilisez pas les types CHAR
ou VARCHAR
pour stocker des chaînes
compressée. Il est mieux d'utiliser un type
BLOB
.
COMPRESS()
a été ajouté en MySQL 4.1.1.
Retourne une chaîne représentant la concaténation des
arguments. Retourne NULL
si un des
arguments est NULL
. Cette fonction peut
prendre plus de 2 arguments. Si un argument est un nombre, il
sera converti en son équivalent sous forme de chaîne de
caractères :
mysql>SELECT CONCAT('My', 'S', 'QL');
-> 'MySQL' mysql>SELECT CONCAT('My', NULL, 'QL');
-> NULL mysql>SELECT CONCAT(14.3);
-> '14.3'
CONCAT_WS(separator, str1, str2,...)
La fonction CONCAT_WS()
signifie
CONCAT With Separator
, c'est-à-dire
"concaténation avec séparateur. Le premier argument est le
séparateur utilisé pour le reste des arguments. Le
séparateur peut être une chaîne de caractères, tout comme
le reste des arguments. Si le séparateur est
NULL
, le résultat sera
NULL
. Cette fonction ignorera tous les
arguments de valeur NULL
et vides, hormis
le séparateur. Le séparateur sera ajouté entre tous les
arguments à concaténer :
mysql>SELECT CONCAT_WS(",","Premier nom","Deuxième nom","Dernier nom");
-> 'Premier nom,Deuxième nom,Dernier nom' mysql>SELECT CONCAT_WS(",","Premier nom",NULL,"Dernier nom");
-> 'Premier nom,Dernier nom'
Convertit des nombres entre différentes bases. Retourne une
chaîne de caractères représentant le nombre
N
, convertit de la base
from_base
vers la base
to_base
. La fonction retourne
NULL
si un des arguments est
NULL
. L'argument N
est
interprété comme un entier, mais peut être spécifié comme
un entier ou une chaîne de caractères. Le minimum pour la
base est 2
et son maximum est
36
. Si to_base
est un
nombre négatif, N
sera considéré comme
un nombre signé. Dans le cas contraire, N
sera traité comme un nombre non-signé. La fonction
CONV
travaille avec une précision de 64
bits :
mysql>SELECT CONV("a",16,2);
-> '1010' mysql>SELECT CONV("6E",18,8);
-> '172' mysql>SELECT CONV(-17,10,-18);
-> '-H' mysql>SELECT CONV(10+"10"+'10'+0xa,10,10);
-> '40'
Retourne str1
si N
=
1
, str2
si
N
= 2
, et ainsi de
suite. Retourne NULL
si
N
est plus petit que 1
ou plus grand que le nombre d'arguments. La fonction
ELT()
est un complément de la fonction
FIELD()
:
mysql>SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
-> 'ej' mysql>SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');
-> 'foo'
EXPORT_SET(bits,on,off,[séparateur,[nombre_de_bits]])
Retourne une chaîne dont tous les bits à 1 dans "bit" sont
représentés par la chaîne "on", et dont tous les bits à 0
sont représentés par la chaîne "off". Chaque chaîne est
séparée par 'séparateur' (par défaut, une virgule
‘','
’) et seul "nombre_de_bits"
(par défaut, 64) "bits" est utilisé :
mysql> SELECT EXPORT_SET(5,'Y','N',',',4)
-> Y,N,Y,N
Retourne l'index de la chaîne str
dans la
liste str1
, str2
,
str3
, ...
. Retourne
0
si str
n'est pas
trouvé. La fonction FIELD()
est un
complément de la fonction ELT()
:
mysql>SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 2 mysql>SELECT FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 0
Retourne une valeur de 1
à
N
si la chaîne str
se
trouve dans la liste strlist
constituée de
N
chaînes. Une liste de chaîne est une
chaîne composée de sous-chaînes séparées par une virgule
‘,
’. Si le premier argument est
une chaîne constante et le second, une colonne de type
SET
, la fonction
FIND_IN_SET()
est optimisée pour utiliser
une recherche binaire très rapide. Retourne
0
si str
n'est pas
trouvé dans la liste strlist
ou si la
liste strlist
est une chaîne vide.
Retourne NULL
si l'un des arguments est
NULL
. Cette fonction ne fonctionne pas
correctement si le premier argument contient une virgule
‘,
’ :
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2
Si l'argument N_OR_S est un nombre, cette fonction retournera
une chaîne de caractère représentant la valeur
hexadécimale de l'argument N
, où
l'argument N
est de type
BIGINT
. Cette fonction est un équivalent
de CONV(N,10,16)
.
Si N_OR_S est une chaîne de caractères, cette fonction
retournera une chaîne de caractères hexadécimale de N_OR_S
où chaque caractère de N_OR_S est converti en 2 chiffres
hexadécimaux. C'est l'inverse de la chaîne
0xff
.
mysql>SELECT HEX(255);
-> 'FF' mysql>SELECT HEX("abc");
-> 616263 mysql>SELECT 0x616263;
-> "abc"
Retourne une chaîne de caractères str
,
après avoir remplacé la portion de chaîne commen¸ant à la
position pos
et de longueur
len
caractères, par la chaîne
newstr
:
mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
-> 'QuWhattic'
Cette fonction gère les caractères multi-octets.
Retourne la position de la première occurrence de la chaîne
substr
dans la chaîne de caractères
str
. Cette fonction est exactement la même
que la fonction LOCATE()
, à la différence
que ces arguments sont inversés :
mysql>SELECT INSTR('foobarbar', 'bar');
-> 4 mysql>SELECT INSTR('xbar', 'foobar');
-> 0
Cette fonction gère les caractères multi-octets. Dans la version 3.23 de MySQL, cette fonction est sensible à la casse, alors que dans la version 4.0 de MySQL, cette fonction sera sensible à la casse si l'argument est une chaîne de caractères binaire.
LCASE()
est un synonyme de
LOWER()
.
Retourne les len
caractères les plus à
gauche de la chaîne de caractères str
:
mysql> SELECT LEFT('foobarbar', 5);
-> 'fooba'
Cette fonction gère les caractères multi-octets.
Retourne la taille de la chaîne str
,
mesurée en octets. Un caractère multi-octets compte comme un
seul caractère. Cela signifie que pour une chaîne contenant
5 caractères de 2 octets, LENGTH()
retournera 10
, alors que
CHAR_LENGTH()
retournera
5
.
mysql> SELECT LENGTH('text');
-> 4
Lit le fichier file_name
et retourne son
contenu sous la forme d'une chaîne de caractères. Le fichier
doit se trouver sur le serveur qui exécute MySQL, vous devez
spécifier le chemin absolu du fichier et vous devez avoir les
droits en lecture sur celui-ci. Le fichier doit pouvoir être
lisible par tous et doit être plus petit que
max_allowed_packet
.
Si ce fichier n'existe pas ou ne peut pas être lu pour
différentes raisons, la fonction retourne
NULL
:
mysql> UPDATE tbl_name
SET blob_column=LOAD_FILE("/tmp/picture")
WHERE id=1;
Si vous n'utilisez pas la version 3.23 de MySQL, vous devez
lire le fichier depuis votre application et créer ainsi votre
requête INSERT
vous-même, pour mettre à
jour la base de données avec le contenu de ce fichier. Une
des possibilités pour réaliser ceci, si vous utilisez la
bibliothèque MySQL++, peut être trouvée à
http://www.mysql.com/documentation/mysql++/mysql++-examples.html.
LOCATE(substr,str)
,
LOCATE(substr,str,pos)
Retourne la position de la première occurrence de la chaîne
substr
dans la chaîne de caractères
str
. Retourne 0
si
substr
ne se trouve pas dans la chaîne de
caractères str
:
mysql>SELECT LOCATE('bar', 'foobarbar');
-> 4 mysql>SELECT LOCATE('xbar', 'foobar');
-> 0 mysql>SELECT LOCATE('bar', 'foobarbar',5);
-> 7
Cette fonction gère les caractères multi-octets. Dans la version 3.23 de MySQL, cette fonction est sensible à la casse, alors que dans la version 4.0 de MySQL, cette fonction sera sensible à la casse si l'argument est une chaîne de caractères binaire.
Retourne la chaîne str
avec tous les
caractères en minuscules, en fonction du jeu de caractères
courant (par défaut, c'est le jeu ISO-8859-1
Latin1
) :
mysql> SELECT LOWER('QUADRATIQUE');
-> 'quadratique'
Cette fonction gère les caractères multi-octets.
Retourne la chaîne de caractères str
,
complétée à gauche par la chaîne de caractères
padstr
jusqu'à ce que la chaîne de
caractères str
atteigne
len
caractères de long. Si la chaîne de
caractères str
est plus longue que
len'
caractères, elle sera raccourcie de
len
caractères.
mysql> SELECT LPAD('hi',4,'??');
-> '??hi'
Retourne la chaîne de caractères str
sans
les espaces initiaux :
mysql> SELECT LTRIM(' barbar');
-> 'barbar'
Retourne une liste (une chaîne contenant des sous-chaînes
séparées par une virgule ‘,
’)
constituée de chaînes qui ont le bit correspondant dans la
liste bits
. str1
correspond au bit 0, str2
au bit 1, etc...
Les chaînes NULL
dans les listes
str1
, str2
,
...
sont ignorées :
mysql>SELECT MAKE_SET(1,'a','b','c');
-> 'a' mysql>SELECT MAKE_SET(1 | 4,'hello','nice','world');
-> 'hello,world' mysql>SELECT MAKE_SET(0,'a','b','c');
-> ''
MID(str,pos,len)
est un synonyme de
SUBSTRING(str,pos,len)
.
Retourne une chaîne de caractères représentant la valeur
octal de l'argument N
, où l'argument
N
est un nombre de type
BIGINT
. Cette fonction est un équivalent
de CONV(N,10,8)
. Retourne
NULL
si l'argument N
est
NULL
:
mysql> SELECT OCT(12);
-> '14'
OCTET_LENGTH()
est un synonyme de
LENGTH()
.
Si le premier caractère de la chaîne str
est un caractère multi-octets, la fonction retourne le code
de ce caractère, calculé à partir du code ASCII retourné
par cette formule :
(1st octet * 256) + (2nd octet * 256^2) + (3rd octet * 256^3) ...
Si le premier caractère n'est pas un caractère multi-octet,
la fonction retournera la même valeur que la fonction
ASCII()
:
mysql> SELECT ORD('2');
-> 50
POSITION(substr IN str)
est un synonyme de
LOCATE(substr,str)
.
Echappe les caractères d'une chaîne pour produire un
résultat qui sera exploitable dans une requête SQL. Les
caractères suivants seront précédés d'un anti-slash dans
la chaîne retournée : le guillemet simple
(‘'
’), l'anti-slash
(‘\
’), ASCII NUL, et le
Contrôle-Z. Si l'argument vaut NULL
, la
valeur retournée sera le mot ``NULL
'' sans
les guillemets simples. La fonction QUOTE
a
été ajoutée en MySQL version 4.0.3.
mysql>SELECT QUOTE("Don't");
-> 'Don\'t!' mysql>SELECT QUOTE(NULL);
-> NULL
Retourne une chaîne de caractères constituée de la
répétition de count
fois la chaîne
str
. Si count <= 0
,
retourne une chaîne vide. Retourne NULL
si
str
ou count
sont
NULL
:
mysql> SELECT REPEAT('MySQL', 3);
-> 'MySQLMySQLMySQL'
Retourne une chaîne de caractères str
dont toutes les occurrences de la chaîne
from_str
sont remplacées par la chaîne
to_str
:
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'
Cette fonction gère les caractères multi-octets.
Retourne une chaîne dont l'ordre des caractères est
l'inverse de la chaîne str
:
mysql> SELECT REVERSE('abc');
-> 'cba'
Cette fonction gère les caractères multi-octets.
Retourne les len
caractères les plus à
droite de la chaîne de caractères str
:
mysql> SELECT RIGHT('foobarbar', 4);
-> 'rbar'
Cette fonction gère les caractères multi-octets.
Retourne la chaîne de caractères str
,
complétée à droite par la chaîne de caractères
padstr
jusqu'à ce que la chaîne de
caractères str
atteigne
len
caractères de long. Si la chaîne de
caractères str
est plus longue que
len'
caractères, elle sera raccourcie de
len
caractères.
mysql> SELECT RPAD('hi',5,'?');
-> 'hi???'
Retourne la chaîne de caractères str
sans
les espaces finaux :
mysql> SELECT RTRIM('barbar ');
-> 'barbar'
Cette fonction gère les caractères multi-octets.
Retourne la valeur Soundex de la chaîne de caractères
str
. Deux chaînes qui ont des sonorités
proches auront des valeurs soundex proches. Une chaîne
Soundex standard possède 4 caractères, mais la fonction
SOUNDEX()
retourne une chaîne de longueur
arbitraire. Vous pouvez utiliser la fonction
SUBSTRING()
sur ce résultat pour obtenir
une chaîne Soundex standard. Tout caractère non
alpha-numérique sera ignoré. Tous les caractères
internationaux qui ne font pas partie de l'alphabet de base
(A-Z) seront considérés comme des voyelles :
mysql>SELECT SOUNDEX('Hello');
-> 'H400' mysql>SELECT SOUNDEX('Quadratically');
-> 'Q36324'
Note : cette fonction implémente l'algorithme soundex original, et non la version populaire améliorée (aussi décrite par D. Knuth). La différence est que la version originale supprime les voyelles, puis les doublons, alors que la version améliorée supprime les doublons d'abord, et ensuite, les voyelles.
Identique à SOUNDEX(expr1)=SOUNDEX(expr2)
(disponible depuis la version 4.1).
Retourne une chaîne constituée de N
espaces :
mysql> SELECT SPACE(6);
-> ' '
SUBSTRING(str,pos)
, SUBSTRING(str
FROM pos)
,
SUBSTRING(str,pos,len)
,
SUBSTRING(str FROM pos FOR len)
Retourne une chaîne de len
caractères de
long de la chaîne str
, à partir de la
position pos
. La syntaxe ANSI SQL92 utilise
une variante de la fonction FROM
:
mysql>SELECT SUBSTRING('Quadratically',5);
-> 'ratically' mysql>SELECT SUBSTRING('foobarbar' FROM 4);
-> 'barbar' mysql>SELECT SUBSTRING('Quadratically',5,6);
-> 'ratica'
Cette fonction gère les caractères multi-octets.
SUBSTRING_INDEX(str,delim,count)
Retourne une portion de la chaîne de caractères
str
, située avant count
occurrences du délimiteur delim
. Si
l'argument count
est positif, tout ce qui
précède le délimiteur final sera retourné. Si l'argument
count
est négatif, tout ce qui suit le
délimiteur final sera retourné :
mysql>SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
-> 'www.mysql' mysql>SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
-> 'mysql.com'
Cette fonction gère les caractères multi-octets.
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM]
str)
Retourne la chaîne de caractères str
dont
tous les préfixes et/ou suffixes remstr
ont été supprimés. Si aucun des spécificateurs
BOTH
, LEADING
ou
TRAILING
sont fournis,
BOTH
est utilisé comme valeur par défaut.
Si remstr
n'est pas spécifié, les espaces
sont supprimés :
mysql>SELECT TRIM(' bar ');
-> 'bar' mysql>SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
-> 'barxxx' mysql>SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
-> 'bar' mysql>SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
-> 'barx'
Cette fonction gère les caractères multi-octets.
UCASE()
est un synonyme de
UPPER()
.
UNCOMPRESS(string_to_uncompress)
Décompresse une chaîne compressée avec
COMPRESS()
. Si l'argument n'est pas une
valeur compressée, le résultat est NULL
.
Cette fonction requiert la bibliothèque
zlib
. Sinon, la valeur retournée est
toujours NULL
.
mysql>SELECT UNCOMPRESS(COMPRESS('any string'));
-> 'any string' mysql>SELECT UNCOMPRESS('any string');
-> NULL
UNCOMPRESS()
a été ajoutée en MySQL
4.1.1.
UNCOMPRESSED_LENGTH(compressed_string)
Retourne la taille de la chaîne avant compression.
mysql> SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('a',30)));
-> 30
UNCOMPRESSED_LENGTH()
a été ajoutée en
MySQL 4.1.1.
Le contraire de HEX(string)
. C'est à dire,
chaque pair de chiffres hexadécimaux sont interprétées
comme des nombres, et sont convertis en un caractère
représenté par le nombre. Le résultat est retournée sous
forme de chaîne binaire.
mysql>SELECT UNHEX('4D7953514C');
-> 'MySQL' mysql>SELECT 0x4D7953514C;
-> 'MySQL' mysql>SELECT UNHEX(HEX('string'));
-> 'string' mysql>SELECT HEX(UNHEX('1267'));
-> '1267'
UNHEX()
a été ajoutée en MySQL 4.1.2.
Retourne la chaîne str
en majuscules, en
fonction du jeu de caractères courant. Par défaut, c'est le
jeu ISO-8859-1 Latin1
:
mysql> SELECT UPPER('Hey');
-> 'HEY'
Cette fonction gère les caractères multi-octets.
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.