Las funciones de cadenas de caracteres retornan
      NULL si la longitud del resultado es mayor que
      el valor de la variable de sistema
      max_allowed_packet . Consulte
      Sección 7.5.2, “Afinar parámetros del servidor”.
    
Para funciones que operan en posiciones de cadenas de caracteres, la primera posición es la 1.
          ASCII(
        str)
          Retorna el valor numérico del carácter más a la izquierda
          de la cadena de caracteres str.
          Retorna 0 si str es la cadena
          vacía. Retorna NULL si
          str es NULL.
          ASCII() funciona para caracteres con
          valores numéricos de 0 a 255.
        
mysql> SELECT ASCII('2');
        -> 50
mysql> SELECT ASCII(2);
        -> 50
mysql> SELECT ASCII('dx');
        -> 100
          Consulte la función ORD() .
        
          BIN(
        N)
          Retorna una representación de cadena de caracteres del valor
          binario de N, donde
          N es un número muy largo
          (BIGINT) . Esto es equivalente a
          CONV(.
          Retorna N,10,2)NULL si
          N es NULL.
        
mysql> SELECT BIN(12);
        -> '1100'
          BIT_LENGTH(
        str)
          Retorna la longitud de la cadena de caracteres
          str en bits.
        
mysql> SELECT BIT_LENGTH('text');
        -> 32
          CHAR(
        N,...)
          CHAR() interpreta los argumentos como
          enteros y retorna la cadena de caracteres que consiste en los
          caracteres dados por los códigos de tales enteros. Los
          valores NULL no se tienen en cuenta.
        
mysql> SELECT CHAR(77,121,83,81,'76');
        -> 'MySQL'
mysql> SELECT CHAR(77,77.3,'77.3');
        -> 'MMM'
          CHAR_LENGTH(
        str)
          Retorna la longitud de la cadena de caracteres
          str, medida en caracteres. Un
          carácter de múltiples bytes cuenta como un sólo carácter.
          Esto significa que para una cadena de caracteres que contiene
          cinco caracteres de dos bytes, LENGTH()
          retorna 10, mientras
          CHAR_LENGTH() returna 5.
        
          CHARACTER_LENGTH(
        str)
          CHARACTER_LENGTH() es sinónimo de
          CHAR_LENGTH().
        
          COMPRESS(
        string_to_compress)
          Comprime una cadena de caracteres. Esta función necesita que
          MySQL se compile con una biblioteca de compresión como
          zlib. De otro modo, el valor retornado
          siempre es NULL. La cadena comprimida puede
          descomprimirse con UNCOMPRESS().
        
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
Los contenidos comprimidos se almacenan de la siguiente forma:
Cadenas vacías se almacenan como cadenas vacías.
              Cadenas no vacías se almacenan como longitud de cuatros
              bytes de la cadena descomprimida (los bytes más bajos
              primero), seguido de la cadena comprimida. Si la cadena
              acaba con un espacio, se añade un carácter
              '.' para evitar problemas con
              eliminación de espacios finales al almacenar en una
              columna CHAR o
              VARCHAR . (El uso de
              CHAR o VARCHAR para
              almacenar cadenas comprimidas no se recomienda. Es mejor
              usar una columna BLOB .)
            
          CONCAT(
        str1,str2,...)
          Retorna la cadena resultado de concatenar los argumentos.
          Retorna NULL si algúna argumento es
          NULL. Puede tener uno o más argumentos. Si
          todos los argumentos son cadenas no binarias, el resultado es
          una cadena no binaria. Si los argumentos incluyen cualquier
          cadena binaria, el resultado es una cadena binaria. Un
          argumento numérico se convierte a su forma de cadena binaria
          equivalente; si quiere evitarlo puede usar conversión de
          tipos explícita, como en este ejemplo: SELECT
          CONCAT(CAST(int_col AS CHAR), char_col)
        
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,...)
          CONCAT_WS() significa CONCAT With Separator
          (CONCAT con separador) y es una forma especial de
          CONCAT(). El primer argumento es el
          separador para el resto de argumentos. El separador se añade
          entre las cadenas a concatenar. El separador puede ser una
          cadena como el resto de argumentos. Si el separador es
          NULL, el resultado es
          NULL. La función evita valores
          NULL tras el argumento separador.
        
mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name');
        -> 'First name,Second name,Last Name'
mysql> SELECT CONCAT_WS(',','First name',NULL,'Last Name');
        -> 'First name,Last Name'
          En MySQL 5.0, CONCAT_WS() no evita cadenas
          vacías. (Sin embargo, evita NULLs.)
        
          CONV(
        N,from_base,to_base)
          Convierte números entre diferentes bases numéricas. Retorna
          una representación de cadena de carácters para el número
          N, convertido de base
          from_base a base
          to_base. Retorna
          NULL si algún argumento es
          NULL. El argumento
          N se interpreta como entero, pero
          puede especificarse como un entero o cadena. La base mínima
          es 2 y la máxima es 36.
          Su to_base es un número negativo,
          N se trata como un número con
          signo. De otro modo, N se trata
          como sin signo. CONV() funciona con
          precisión de 64-bit.
        
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'
          ELT(
        N,str1,str2,str3,...)
          Retorna str1 si
          N = 1,
          str2 if
          N = 2, y así.
          Retorna NULL si
          N es menor que 1
          o mayor que el número de argumentos. ELT()
          es el complemento de FIELD().
        
mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
        -> 'ej'
mysql> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');
        -> 'foo'
          EXPORT_SET(
        bits,on,off[,separator[,number_of_bits]])
          Retorna una cadena en que para cada bit del valor
          bits, puede obtener una cadena
          on y para cada bit reasignado
          obtiene una cadena off . Los bits
          en bits se examinan de derecha a
          izquierda (de bits menores a mayores). Las cadenas se añaden
          al resultado de izquierda a derecha, separados por la cadena
          separator (siendo el carácter por
          defecto la coma ','). El número de bits
          examinados se obtiene por
          number_of_bits (por defecto 64).
        
mysql> SELECT EXPORT_SET(5,'Y','N',',',4);
        -> 'Y,N,Y,N'
mysql> SELECT EXPORT_SET(6,'1','0',',',10);
        -> '0,1,1,0,0,0,0,0,0,0'
          FIELD(
        str,str1,str2,str3,...)
          Retorna el índice de str en la
          lista str1,
          str2,
          str3, ... .
          Retorna 0 si no se encuentra
          str.
        
          Si todos los argumentos de FIELD() son
          cadenas, todos los argumentos se comparan como cadenas. Si
          todos los argumentos son números, se comparan como números.
          De otro modo, los argumentos se comparan como números con
          doble precisión.
        
          Si str es NULL,
          el valor retornado es 0 porque
          NULL falla en comparaciones de comparación
          con cualquier valor. FIELD() es el
          complemento 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)
          Retorna un valor en el rango de 1 a
          N si la cadena
          str está en la lista de cadenas
          strlist consistente de
          N subcadenas. Una lista de cadenas
          es una cadena compuesta de subcadenas separadas por caracteres
          ',' . Si el primer argumento es una cadena
          constante y el segundo es una columna de tipo
          SET, la función
          FIND_IN_SET() está optimizada para usar
          aritmética de bit. Retorna 0 si
          str no está en
          strlist o si
          strlist es la cadena vacía.
          Retorna NULL si algún argumento es
          NULL. Esta función no funciona
          apropiadamente si el primer argumento contiene un carácter de
          coma (',') .
        
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
        -> 2
          HEX(
        N_or_S)
          Si N_OR_S es un número, retorna
          una cadena representación del valor hexadecimal de
          N, donde
          N es un número muy grande
          (BIGINT) . Esto es equivalente a
          CONV(N,10,16).
        
          Si N_OR_S es una cadena, esta
          función retorna una cadena hexadecimal de
          N_OR_S caracteres, donde cada
          carácter en N_OR_S se convierte a
          dos dígitos hexadecimales.
        
mysql> SELECT HEX(255);
        -> 'FF'
mysql> SELECT 0x616263;
        -> 'abc'
mysql> SELECT HEX('abc');
        -> 616263
          INSERT(
        str,pos,len,newstr)
          Retorna la cadena str, con la
          subcadena comenzando en la posición
          pos y
          len caracteres reemplazados por la
          cadena newstr. Retorna la cadena
          original si pos no está entre la
          longitud de la cadena. Replaza el resto de la cadena a partir
          de la posición pos si
          len no está dentro de la longitud
          del resto de la cadena. Retorna NULL si
          cualquier argumento es nulo.
        
mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
        -> 'QuWhattic'
mysql> SELECT INSERT('Quadratic', -1, 4, 'What');
        -> 'Quadratic'
mysql> SELECT INSERT('Quadratic', 3, 100, 'What');
        -> 'QuWhat'
Esta función está preparada para funcionar con múltiples bytes.
          INSTR(
        str,substr)
          Retorna la posición de la primera ocurrencia de la subcadena
          substr en la cadena
          str. Es lo mismo que la forma de
          dos argumentos de LOCATE(), excepto que el
          orden de los argumentos es inverso.
        
mysql> SELECT INSTR('foobarbar', 'bar');
        -> 4
mysql> SELECT INSTR('xbar', 'foobar');
        -> 0
Esta función puede trabajar con múltiples bytes. En MySQL 5.0, sólo es sensible a mayúsculas si uno de los argumentos es una cadena binaria.
          LCASE(
        str)
          LCASE() es sinónimo de
          LOWER().
        
          LEFT(
        str,len)
          Retorna los len caracteres
          empezando por la izquierda de la cadena
          str.
        
mysql> SELECT LEFT('foobarbar', 5);
        -> 'fooba'
          LENGTH(
        str)
          Retorna la longitud de la cadena
          str, medida en bytes.Un carácter
          multi-byte cuenta como múltiples bytes. Esto significa que
          para cadenas que contengan cinco caracteres de dos bytes,
          LENGTH() retorna 10, mientras que
          CHAR_LENGTH() retorna 5.
        
mysql> SELECT LENGTH('text');
        -> 4
          LOAD_FILE(
        file_name)
          Lee el fichero y retorna el contenido como cadena de
          caracteres. El fichero debe estar localizado en el servidor,
          debe especificar la ruta completa al fichero, y debe tener el
          privilegio FILE . El fichero debe ser
          legible por todo el mundo y su tamaño menor a
          max_allowed_packet bytes.
        
          Si el fichero no existe o no puede ser leído debido a que una
          de las anteriores condiciones no se cumple, la función
          retorna NULL.
        
mysql> UPDATEtbl_nameSETblob_column=LOAD_FILE('/tmp/picture') WHERE id=1;
          LOCATE(
          ,
          substr,str)LOCATE(
        substr,str,pos)
          La primera sintaxis retorna la posición de la primera
          ocurrencia de la subcadena substr
          en la cadena str. La segunda
          sintaxis retorna la posición de la primera ocurrencia de la
          subcadena substr en la cadena
          str, comanzando en la posición
          pos. Retorna 0 si
          substr no está en
          str.
        
mysql> SELECT LOCATE('bar', 'foobarbar');
        -> 4
mysql> SELECT LOCATE('xbar', 'foobar');
        -> 0
mysql> SELECT LOCATE('bar', 'foobarbar',5);
        -> 7
Esta función trabaja con múltiples bytes. En MySQL 5.0, es sensible a mayúsculas sólo si algún argumento es una cadena binaria.
          LOWER(
        str)
          Retorna la cadena str con todos los
          caracteres cambiados a minúsculas según el mapeo del
          conjunto de caracteres actual (por defecto es ISO-8859-1
          Latin1).
        
mysql> SELECT LOWER('QUADRATICALLY');
        -> 'quadratically'
Esta función funciona con múltiples bytes.
          LPAD(
        str,len,padstr)
          Retorna la cadena str, alineado a
          la izquierda con la cadena padstr a
          una longitud de len caracteres. Si
          str es mayor que
          len, el valor retornado se acorta a
          len caracteres.
        
mysql> SELECT LPAD('hi',4,'??');
        -> '??hi'
mysql> SELECT LPAD('hi',1,'??');
        -> 'h'
          LTRIM(
        str)
          Retorna la cadena str con los
          caracteres en blanco iniciales eliminados.
        
mysql> SELECT LTRIM('  barbar');
        -> 'barbar'
Esta función trabaja con múltiples bytes.
          MAKE_SET(
        bits,str1,str2,...)
          Retorna un conjunto de valores (una cadena conteniendo
          subcadenas separadas por caracteres ',' )
          consistiendo en cadenas que tienen el bit correspondiente en
          bits asignado.
          str1 se corresponde al bit 0,
          str2 al bit 1, y así. Los valores
          NULL en str1,
          str2, ... no se
          añaden al resultado.
        
mysql> SELECT MAKE_SET(1,'a','b','c');
        -> 'a'
mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world');
        -> 'hello,world'
mysql> SELECT MAKE_SET(1 | 4,'hello','nice',NULL,'world');
        -> 'hello'
mysql> SELECT MAKE_SET(0,'a','b','c');
        -> ''
          MID(
        str,pos,len)
          MID(
          es sinónimo de
          str,pos,len)SUBSTRING(.
        str,pos,len)
          OCT(
        N)
          Retorna una representación en cadena del valor octal de
          N, donde
          N es un número largo
          (BIGINT). Es equivalente a
          CONV(N,10,8). Retorna
          NULL si N es
          NULL.
        
mysql> SELECT OCT(12);
        -> '14'
          OCTET_LENGTH(
        str)
          OCTET_LENGTH() es sinónimo de
          LENGTH().
        
          ORD(
        str)
          Si el carácter más a la izquierda de la cadena
          str es un carácter multi-byte ,
          retorna el código de ese carácter, calculado a partir del
          valor numérico de sus bytes usando esta fórmula:
        
(1st byte code) + (2nd byte code * 256) + (3rd byte code * 256^2) ...
          Si el caráctar más a la izquierda no es multi-byte ,
          ORD() retorna el mismo valor que la
          función ASCII() .
        
mysql> SELECT ORD('2');
        -> 50
          POSITION(
        substr IN
          str)
          POSITION( es sinónimo de
          substr IN
          str)LOCATE(.
        substr,str)
          QUOTE(
        str)
          Acota una cadena para producir un resultado que puede usarse
          como un valor con caracteres de escape en un comando SQL. La
          cadena se retorna rodeado por comillas sencillas y con cada
          instancia de comilla sencilla ('''),
          antibarra ('\'), ASCII NUL, y Control-Z
          predecidos por una antibarra. Si el argumento es
          NULL, el valor de retorno es la palabra
          “NULL” sin comillas alrededor.
        
mysql> SELECT QUOTE('Don\'t!');
        -> 'Don\'t!'
mysql> SELECT QUOTE(NULL);
        -> NULL
          REPEAT(
        str,count)
          Retorna una cadena consistente de la cadena
          str repetida
          count veces. Si
          count <= 0NULL si
          str o
          count son NULL.
        
mysql> SELECT REPEAT('MySQL', 3);
        -> 'MySQLMySQLMySQL'
          REPLACE(
        str,from_str,to_str)
          Retorna la cadena str con todas las
          ocurrencias de la cadena from_str
          reemplazadas con la cadena to_str.
        
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
        -> 'WwWwWw.mysql.com'
Esta función trabaja con múltiples bytes.
          REVERSE(
        str)
          Retorna la cadena str con el orden
          de los caracteres invertido.
        
mysql> SELECT REVERSE('abc');
        -> 'cba'
Esta función trabaja con múltiples bytes.
          RIGHT(
        str,len)
          Retorna los len caracteres de la
          derecha de la cadena str.
        
mysql> SELECT RIGHT('foobarbar', 4);
        -> 'rbar'
Esta función trabaja con múltiples bytes.
          RPAD(
        str,len,padstr)
          Retorna la cadena str, alineada a
          la derecha con la cadena padstr con
          una longitud de len caracteres. Si
          str es mayor que
          len, el valor de retorno se corta a
          len caracteres.
        
mysql> SELECT RPAD('hi',5,'?');
        -> 'hi???'
mysql> SELECT RPAD('hi',1,'?');
        -> 'h'
Esta función trabaja con múltiples bytes.
          RTRIM(
        str)
          Retorna la cadena str con los
          espacios precedentes eliminados.
        
mysql> SELECT RTRIM('barbar   ');
        -> 'barbar'
Esta función trabaja con múltiples bytes.
          SOUNDEX(
        str)
          Retorna una cadena soudex de str.
          Dos cadenas que suenen igual deben tener cadenas soundex
          idénticas. Una cadena soundex estándar tiene cuatro
          caracteres de longitud, pero la función
          SOUNDEX() retorna una cadena
          arbitráriamente larga. Puede usar
          SUBSTRING() en el resultado para obtener
          una cadena soundex estándar. Todos los caracteres no
          alfabéticos en str se ignoran.
          Todos los caracteres alfabéticos internacionales fuera del
          rango A-Z se tratan como vocales.
        
mysql> SELECT SOUNDEX('Hello');
        -> 'H400'
mysql> SELECT SOUNDEX('Quadratically');
        -> 'Q36324'
Nota: Esta función implementa el algoritmo Soundex original, no la versión más popular (descrita por D. Hnuth). La diferencia es que la versión original descarta vocales primero y luego duplicados, mientras que la versión mejorada descarta primero los duplicados y luego las vocales.
          expr1 SOUNDS LIKE
          expr2
          Es lo mismo que
          SOUNDEX(.
        expr1) =
          SOUNDEX(expr2)
          SPACE(
        N)
          Retorna la cadena consistente en N
          caracteres blancos.
        
mysql> SELECT SPACE(6);
        -> '      '
          SUBSTRING(
          , str,pos)SUBSTRING(,
          str FROM
          pos)SUBSTRING(
          , str,pos,len)SUBSTRING(
        str FROM
          pos FOR
          len)
          Las formas sin el arguemnto len
          retornan una subcadena de la cadena
          str comenzando en la posición
          pos. Las formas con el argumento
          len retornan una subcadena de
          longitud len a partir de la cadena
          str, comenzando en la posición
          pos.Las formas que usan
          FROM son sintaxis SQL estándard. En MySQL
          5.0, es posible usar valores negativos para
          pos. En este caso, el inicio de la
          subcadena son pos caracteres a
          partir del final de la cadena, en lugar del principio. Un
          valor negativo puede usarse para
          pos en cualquier de las formas de
          esta función.
        
mysql> SELECT SUBSTRING('Quadratically',5);
        -> 'ratically'
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
        -> 'barbar'
mysql> SELECT SUBSTRING('Quadratically',5,6);
        -> 'ratica'        
mysql> SELECT SUBSTRING('Sakila', -3);
        -> 'ila'        
mysql> SELECT SUBSTRING('Sakila', -5, 3);
        -> 'aki'
mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
        -> 'ki'
Esta función trabaja con múltiples bytes.
          Tenga en cuenta que si usa un valor menor a 1 para
          len, el resultado siempre es una
          cadena vacía.
        
          SUBSTR() es sinónimo de
          SUBSTRING().
        
          SUBSTRING_INDEX(
        str,delim,count)
          Retorna la subcadena de la cadena
          str antes de
          count ocurrencias del delimitador
          delim. Si
          count es positivo, todo a la
          izquierda del delimitador final (contando desde la izquierda)
          se retorna. Si count es negativo,
          todo a la derecha del delimitador final (contando desde la
          derecha) se retorna.
        
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
        -> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
        -> 'mysql.com'
Esta función trabaja con múltiples bytes.
          TRIM([{BOTH | LEADING | TRAILING}
          [,
          remstr] FROM]
          str)TRIM(
        remstr FROM]
          str)
          Retorna la cadena str con todos los
          prefijos y/o sufijos remstr
          eliminados. Si ninguno de los especificadores
          BOTH, LEADING, o se
          daTRAILING, BOTH se
          asumen. Si remstr es opcional y no
          se especifica, los espacios se eliminan.
        
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'
Esta función trabaja con múltiples bytes.
          UCASE(
        str)
          UCASE() es sinónimo de
          UPPER().
        
          UNCOMPRESS(
        string_to_uncompress)
          Descomprime una cadena comprimida con la función
          COMPRESS() . Si el argumento no es un valor
          comprimido, el resultado es NULL. Esta
          función necesita que MySQL se compile con una biblioteca de
          compresión tal como zlib. De otro modo, el
          valor de retorno siempre es NULL.
        
mysql> SELECT UNCOMPRESS(COMPRESS('any string'));
        -> 'any string'
mysql> SELECT UNCOMPRESS('any string');
        -> NULL
          UNCOMPRESSED_LENGTH(
        compressed_string)
Retorna la longitud de una cadena comprimida antes de la compresión.
mysql> SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('a',30)));
        -> 30
          UNHEX(
        str)
          Realiza la operación opuesta a
          HEX(. Esto
          es, interpreta cada par de dígitos hexadecimales en el
          argumento como números y los convierte al carácter
          representado por el número. El caracteres resultantes se
          retornan como cadena binaria.
        str)
mysql> SELECT UNHEX('4D7953514C');
        -> 'MySQL'
mysql> SELECT 0x4D7953514C;
        -> 'MySQL'
mysql> SELECT UNHEX(HEX('string'));
        -> 'string'
mysql> SELECT HEX(UNHEX('1267'));
        -> '1267'
          UPPER(
        str)
          Retorna la cadena str con todos los
          caracteres cambiados a mayúsculas según el mapeo del
          conjunto de caracteres actual (por defecto es ISO-8859-1
          Latin1).
        
mysql> SELECT UPPER('Hej');
        -> 'HEJ'
Esta función trabaja con múltiples bytes.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

