![]() ![]() |
|
![]() ![]() ![]() ![]() |
|
![]() |
![]() 7.3.10 Fonctions de chaînes
Les fonctions qui retourne des chaînes, retourneront Pour les opérations sur les chaînes, le premier caractère est en position 1. ASCII(str)
Retourne le code ASCII du premier caractère de la chaîne. Si la chaîne est vide, retourne 0 . Si la chaîne est NULL , retourne NULL .
mysql> select ASCII('2'); -> 50 mysql> select ASCII(2); -> 50 mysql> select ASCII('dx'); -> 100 CONV(N,from_base,to_base)
Converti des nombres d'une base à l'autre, et retourne la chaîne représentant le résultat converti. Si la chaîne est NULL , retourne NULL . L'argument N est considéré comme un entier, mais peut être un entier ou une chaîne. La base minimum est 2, et maximum est 36. Si la base d'arrivée est un nombre négatif, N est considéré comme un entier signé. Sinon, N est traité comme un entiers non signé. CONV fonctionne à la précision 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' BIN(N)
Retourne une chaîne représentant l'argument N en binaire. N est un BIGINT . Cette fonction est l'équivalent de CONV(N,10,2) . Retourne NULL si N est NULL .
mysql> select BIN(12); -> '1100' OCT(N)
Retourne une chaîne représentant l'argument N en base 8. N est un BIGINT . Cette fonction est l'équivalent de CONV(N,10,8) . Retourne NULL si N est NULL .
mysql> select OCT(12); -> '14' HEX(N)
Retourne une chaîne représentant l'argument N en hexadécimal. N est un BIGINT . Cette fonction est l'équivalent de CONV(N,10,16) . Retourne NULL si N est NULL .
mysql> select HEX(255); -> 'FF' CHAR(N,...)
Interprète les arguments comme des nombres entiers, et retourne une chaîne constituée des caractères correspondant aux codes ASCII des arguments. Les valeurs NULL sont ignorées.
mysql> select CHAR(77,121,83,81,'76'); -> 'MySQL' mysql> select CHAR(77,77.3,'77.3'); -> 'MMM' CONCAT(X,Y,...)
Concatène les arguments, et re tourne le résultat. Retourne NULL si un des arguments est NULL . Le nombre d'argument minimum est 2.
mysql> select CONCAT('My', 'S', 'QL'); -> 'MySQL' mysql> select CONCAT('My', NULL, 'QL'); -> NULL LONGUEUR(str)
OCTET_LONGUEUR(str)
CHAR_LONGUEUR(str)
CHARACTER_LONGUEUR(str)
Retourne la longueur de la chaîne str .
mysql> select LONGUEUR('text'); -> 4 mysql> select OCTET_LONGUEUR('text'); -> 4 LOCATE(substr,str)
POSITION(substr IN str)
Retourne la position de la première occurrence de substr dans la chaîne. Retourne 0 si substr n'est pas trouvée.
mysql> select LOCATE('bar', 'foobarbar'); -> 4 mysql> select LOCATE('xbar', 'foobar'); -> 0 LOCATE(substr,str,pos)
Retourne la position de la première occurrence de substr dans la chaîne, en commencant à chercher à partir de la position pos . Retourne 0 si substr n'est pas trouvée.
mysql> select LOCATE('bar', 'foobarbar',5); -> 7 INSTR(str,substr)
Retourne la position de la première occurrence de substr dans la chaîne, en commencant à chercher à partir de la position pos . Retourne 0 si substr n'est pas trouvée. C'est la même fonction que LOCATE() , mais les deux arguments n'ont pas la même place.
mysql> select INSTR('foobarbar', 'bar'); -> 4 mysql> select INSTR('xbar', 'foobar'); -> 0 LPAD(str,len,padstr)
Retourne la chaîne str , complétée à gauche par la chaîne padstr jusqu'à ce que le résultat ait la longueur .
mysql> select LPAD('hi',4,'??'); -> '??hi' RPAD(str,len,padstr)
Retourne la chaîne str , complétée à droite par la chaîne padstr jusqu'à ce que le résultat ait la longueur .
mysql> select RPAD('hi',5,'?'); -> 'hi???' LEFT(str,len)
Retourne les len premiers caractères de la chaîne str .
mysql> select LEFT('foobarbar', 5); -> 'fooba' RIGHT(str,len)
SUBSTRING(str FROM len)
Retourne les len derniers caractères de la chaîne str .
mysql> select RIGHT('foobarbar', 4); -> 'rbar' mysql> select SUBSTRING('foobarbar' FROM 4); -> 'rbar' SUBSTRING(str,pos,len)
SUBSTRING(str FROM pos FOR len)
MID(str,pos,len)
Retourne les len caractères de la chaîne str, en commencant à partir de la position pos . La variante FROM est une syntaxe issue de la norme ANSI SQL92.
mysql> select SUBSTRING('Quadratically',5,6); -> 'ratica' SUBSTRING(str,pos)
Retourne une sous-chaîne, issue de str et commencant à la position pos .
mysql> select SUBSTRING('Quadratically',5); -> 'ratically' SUBSTRING_INDEX(str,delim,count)
Retourne une sous-chaîne, issue de str , après count occurrences du délimiteur delim . Si count est positif, la sous-chaîne comprendra tous les caractères situés à gauche du délimiteur final. Si count est négatif, la sous-chaîne comprendra tous les caractères situés à droite du délimiteur final
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', 2); -> 'www.mysql' mysql> select SUBSTRING_INDEX('www.mysql.com', '.', -2); -> 'mysql.com' LTRIM(str)
Retourne la chaîne str après élimination des espaces situés en début de chaîne.
mysql> select LTRIM(' barbar'); -> 'barbar' RTRIM(str)
retourne la chaîne str après élimination des espaces situés en fin de chaîne.
mysql> select RTRIM('barbar '); -> 'barbar' TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
Retourne la chaîne str après élimination de chaînes remstr situées en début et/ou fin de chaîne. Si aucune des options BOTH , LEADING ou TRAILING n'est précisé, alors BOTH est utilisé par défaut. Si remstr n'est pas précisé, les espaces sont éliminé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' SOUNDEX(str)
Retourne une représentation phonétique de la chaîne . Deux chaînes qui " sonne de la même façon " devraient avoir des représentation identiques. Une représentation standard a 4 caractères, mais SOUNDEX() retourne un nombre arbitraire de caractère. Il faudra alors utiliser SUBSTRING() sur le résultat pour avoir une représentation standard. Les caractères non-alphanumériques sont ignorés. Tous les caractères alphabétiques hors de l'intervalle A-Z sont considéré comme des voyelles.
mysql> select SOUNDEX('Hello'); -> 'H400' mysql> select SOUNDEX('Quadratically'); -> 'Q36324' SPACE(N)
Crée une chaîne contenant N espaces.
mysql> select SPACE(6); -> ' ' REPLACE(str,from_str,to_str)
Remplace les occurrences de from_str par la chaîne to_str , dans la chaîne str .
mysql> select REPLACE('www.mysql.com', 'w', 'Ww'); -> 'WwWwww.mysql.com' REPEAT(str,count)
Retourne une chaîne constituée des répétitions de la chaîne . Si count <= 0 , retourne une chaîne vide. Si str ou count est NULL , retourne NULL .
mysql> select REPEAT('MySQL', 3); -> 'MySQLMySQLMySQL' REVERSE(str)
Inverse l'ordre des caractères de la chaîne str .
mysql> select REVERSE('abc'); -> 'cba' INSERT(str,pos,len,newstr)
Retourne la chaîne str , avec la chaîne newstr qui remplace tous les caractères à partir de la position pos , et sur la longueur len .
mysql> select INSERT('Quadratic', 3, 4, 'What'); -> 'QuWhattic' ELT(N,str1,str2,str3,...)
Retourne str1 si N = 1 , str2 si N = 2 , etc... Retourne NULL si est plus petit que 1 ou plus grand que le nombre d'arguments. ELT() est le contraire de FIELD() .
mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo'); -> 'ej' mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo'); -> 'foo' FIELD(str,str1,str2,str3,...)
Retourne l'index de la chaîne str dans la liste des arguments . Retourne 0 si str n'est pas trouvé .FIELD() est le contraire de ELT()
mysql> select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo'); -> 2 mysql> select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo'); -> 0 FIND_IN_SET(str,strlist)
Retourne l'index de la chaîne dans la liste. Une liste de chaîne est composée de chaînes, séparées par le caractère ``,''. Si le premier argument est une chaîne constante, et le deuxième est une colonne de type SET , la fonction est optimisée FIND_IN_SET() pour utiliser l'arithmétique sur les bits ! Retourne str si n'est pas dans la liste strlist , ou si la liste est vide. Retourne NULL si l'un des arguments est NULL . La fonction n'accepte pas de caractère ``,''dans le premier membre de la liste.
mysql> SELECT FIND_IN_SET('b','a,b,c,d'); -> 2 MAKE_SET(bits,str1,str2,...)
Retourne un ensemble (une chaîne contenant des sous-chaînes séparée par ``,'') qui correspond à u sous-ensemble des chaînes en arguments. La chaîne à l'index i sera présente dans l'ensemble résultat, si le bit à l'index i est à un, dans bits).
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'); -> '' EXPORT_SET(bits,on,off,[separator],[number_of_bits])
Retourne une chaîne dans laquelle, pour chaque bit à 1 , il y a la chaîne on , pour chaque bit à 0 , il y a la chaîne off , séparés par le separator (par défaut, ','), et uniquement pour les number_of_bits (par défaut, 64) premiers bits.
mysql> select EXPORT_SET(5,'Y','N',',',4) -> Y,N,Y,N LCASE(str)
LOWER(str)
Retourne la chaîne avec tous les caractères en minuscules, conformément au jeu de caractère courant (par défaut, ISO-8859-1 Latin1).
mysql> select LCASE('QUADRATICALLY'); -> 'quadratically' UCASE(str)
UPPER(str)
Retourne la chaîne avec tous les caractères en majuscule, conformément au jeu de caractère courant (par défaut, ISO-8859-1 Latin1).
mysql> select UCASE('Hej'); -> 'HEJ' LOAD_FILE(Nom_fichier)
Lit le fichier Nom_fichier et retourne le résultat dans une chaîne. Le fichier doit être sur le serveur, et il faut préciser le nom et le chemin d'accès complet. Le fichier doit être lisible par tous, et être plus petit que max_allowed_packet . Si le fichier n'existe pas, ou ne peut être lu, la fonction retourne NULL .
mysql> UPDATE Nom_tableSET blob_column=LOAD_FILE("/tmp/picture") WHERE id=1; Il n'y a pas de fonction de conversion d'un nombre en char. Il n'y en pas besoin, car MySQL converti automatiquement les nombres en chaînes, et vice versa. mysql> SELECT 1+"1"; -> 2 mysql> SELECT CONCAT(2,' test'); -> '2 test' Si une fonction qui travaille sur des chaînes sensibles à la casse recoit comme argument une chaîne insensible à la casse, le resultat sera aussi une chaîne insensible à la casse. Un nombre converti en chaîne est traité comme une chaîne insensible à la casse. Cela n'affecte que les comparaisons. |