sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo puedo convertir un int en un bit en MySQL 5.1?

¡No puedes!

CAST y CONVERT solo funcionan para:

  • BINARIO[(N)]
  • CARÁCTER[(N)]
  • FECHA
  • FECHA Y HORA
  • DECIMALES[(M[,D])]
  • FIRMADO [ENTERO]
  • TIEMPO
  • SIN FIRMAR [ENTERO]

No hay lugar para:BIT, BITINT, TINYINT, MEDIUMINT, BIGINT, SMALLINT, ...

Sin embargo, puede crear su propia función cast_to_bit(n):

DELIMITER $$

CREATE FUNCTION cast_to_bit (N INT) RETURNS bit(1)
BEGIN
    RETURN N;
END

Para probarlo usted mismo, puede crear una vista con varias conversiones como:

CREATE VIEW view_bit AS
    SELECT
        cast_to_bit(0),
        cast_to_bit(1),
        cast_to_bit(FALSE),
        cast_to_bit(TRUE),
        cast_to_bit(b'0'),
        cast_to_bit(b'1'),
        cast_to_bit(2=3),
        cast_to_bit(2=2)

... ¡y luego descríbelo!

DESCRIBE view_bit;

Ta-dah!! ¡¡¡Todos están bit(1) ahora!!!