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.

