BINARY
        
          El operador BINARY convierte la cadena a
          continuación a una cadena binaria. Esta es una forma fácil
          de forzar una comparación de columna byte a byte en lugar de
          carácter a carácter. Esto hace que la comparación sea
          sensible a mayúsculas incluso si no está definida como
          BINARY o BLOB.
          BINARY también hace que los espacios
          finales sean significativos.
        
mysql> SELECT 'a' = 'A';
        -> 1
mysql> SELECT BINARY 'a' = 'A';
        -> 0
mysql> SELECT 'a' = 'a ';
        -> 1
mysql> SELECT BINARY 'a' = 'a ';
        -> 0
          BINARY afecta la comparación; puede darse
          antes de cualquier operando con el mismo resultado.
        
          BINARY  es
          una abreviación de
          strCAST(.
        str AS
          BINARY)
          Tenga en cuenta que en algunos contextos, si cambia el tipo de
          una columna BINARY indexada, MySQL no es
          capaz de usar el índice eficientemente.
        
          Si quiere comparar un valor BLOB u otra
          cadena binaria de forma no sensible a mayúsculas, puede
          hacerlo teniendo en cuenta que las cadenas binarias no tienen
          conjunto de caracteres, y por lo tanto no tienen concepto de
          mayúsculas. Para una comparación no sensible a mayúsculas,
          use la función CONVERT() para convertir el
          valor de cadena a un conjunto de caracteres no sensible a
          mayúsculas. El resultado es una cadena no binaria. El
          resultado es una cadena no binaria, así que la operación
          LIKE no es sensible a mayúsculas:
        
SELECT 'A' LIKE CONVERT(blob_colUSING latin1) FROMtbl_name;
          Para usar un conjunto de caracteres diferente, substituya su
          nombre por latin1 en el comando precedente.
        
          CONVERT() puede usarse más generalmente
          para comparar cadenas que se representan en distintos
          conjuntos de caracteres.
        
          CAST(,
          expr AS
          type)CONVERT(
          , expr,type)CONVERT(
        expr USING
          transcoding_name)
          Las funciones CAST() y
          CONVERT() pueden usarse para tomar un valor
          de un tipo y producir un valor de otro tipo.
        
          type puede ser uno de los
          siguientes valores:
        
              BINARY
            
              CHAR
            
              DATE
            
              DATETIME
            
              DECIMAL
            
              SIGNED [INTEGER]
            
              TIME
            
              UNSIGNED [INTEGER]
            
          BINARY produce una cadena binaria. Consulte
          la entrada para el operador BINARY en esta
          sección para una descripción de cómo afecta esto a las
          comparaciones.
        
          El tipo DECIMAL está disponible desde
          MySQL 5.0.8.
        
          CAST() y CONVERT(... USING
          ...) son sintaxis SQL estándar. La forma
          no-USING de CONVERT() es
          sintaxis ODBC .
        
          CONVERT() con USING se
          usa para convertir datos entre distintos conjuntos de
          caracteres. En MySQL, los nombres transcodificados son los
          mismos que los nombres de los conjuntos de caracteres
          correspondientes. Por ejemplo, este comando convierte la
          cadena 'abc' en el conjunto de caracteres
          por defecto del servidor a la cadena correspondiente en el
          conjunto de caracteres utf8 :
        
SELECT CONVERT('abc' USING utf8);
      Las funciones de conversión son útiles cuando quiere crear una
      columna con un tipo específico en un comando CREATE ...
      SELECT:
    
CREATE TABLE new_table SELECT CAST('2000-01-01' AS DATE);
      Las funciones también pueden ser útiles para ordenar columnas
      ENUM en orden léxico. Normalmente ordenar
      columnas ENUM se hace usando el valor numérico
      interno. Convertir los valores en CHAR resulta
      en orden léxico:
    
SELECTenum_colFROMtbl_nameORDER BY CAST(enum_colAS CHAR);
      CAST(
      es lo mismo que str AS BINARY)BINARY
      .
      strCAST(
      trata la expresión como una cadena con el conjunto de caracteres
      por defecto.
    expr AS CHAR)
      CAST() cambia el resultaod si lo usa como parte
      de una expresión más compleja como CONCAT('Date:
      ',CAST(NOW() AS DATE)).
    
      No debe usar CAST() para extraer datos en datos
      en distintos formatos sino usar funciones de cadenas como
      LEFT() or EXTRACT().
      Consulte Sección 12.5, “Funciones de fecha y hora”.
    
Para convertir una cadena en un valor numérico en un contexto numérico, normalmente no tiene que hacer nada más que usar el valor de la cadena como si fuera un número:
mysql> SELECT 1+'1';
       -> 2
      Si usa un número en un contexto de cadenas, el número se
      convierte automáticamente en una cadena BINARY
      string.
    
mysql> SELECT CONCAT('hello you ',2);
        -> 'hello you 2'
      MySQL soporta aritmética con valores con y sin signo de 64-bit.
      Si usa operadores numéricos (tales como +) y
      uno de los operandos es un entero sin signo, el resultado no tiene
      signo. Puede cambiar este comportamiento usando los operadores
      SIGNED y UNSIGNED para
      cambiar la operación a un entero con o sin signo de 64-bit ,
      respectivamente.
    
mysql> SELECT CAST(1-2 AS UNSIGNED)
        -> 18446744073709551615
mysql> SELECT CAST(CAST(1-2 AS UNSIGNED) AS SIGNED);
        -> -1
      Tenga en cuenta que si un operando es un valor de coma flotante,
      el resultado es de coma flotante y no está afectado por la regla
      precedente. (En este contexto, los valores de la columna
      DECIMAL se tratan como valores con punto
      flotante.)
    
mysql> SELECT CAST(1 AS UNSIGNED) - 2.0;
        -> -1.0
Si usa una cadena en una operación aritmética, se convierte en número en coma flotante.
É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.

