Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich in MySQL 5.1 ein Int in ein Bit umwandeln?

Das kannst du nicht!

CAST und CONVERT funktionieren nur für:

  • BINARY[(N)]
  • CHAR[(N)]
  • DATUM
  • DATETIME
  • DEZIMAL[(M[,D])]
  • SIGNED [INTEGER]
  • ZEIT
  • UNSIGNED [INTEGER]

Kein Platz für:BIT, BITINT, TINYINT, MEDIUMINT, BIGINT, SMALLINT, ...

Sie können jedoch Ihre eigene Funktion cast_to_bit(n):

erstellen
DELIMITER $$

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

Um es selbst auszuprobieren, können Sie eine Ansicht mit mehreren Konvertierungen erstellen, wie zum Beispiel:

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)

... und dann beschreibe es!

DESCRIBE view_bit;

TA Dah!! Jeder ist jetzt bit(1)!!!