Heim  >  Artikel  >  Datenbank  >  Wie kann ich in MySQL 5.1 erfolgreich INT in BIT umwandeln?

Wie kann ich in MySQL 5.1 erfolgreich INT in BIT umwandeln?

Linda Hamilton
Linda HamiltonOriginal
2024-10-28 20:49:30503Durchsuche

How to Successfully Cast INT to BIT in MySQL 5.1?

In MySQL 5.1 INT in BIT umwandeln: Eine unmögliche Aufgabe

Beim Übergang von SQL Server zu MySQL 5.1 entsteht eine Herausforderung, wenn versucht wird, eine Tabelle mit einem Bit zu erstellen Spalte mithilfe einer Select-Anweisung. Der intuitive Ansatz, eine Integer-Spalte in ein Bit umzuwandeln, wie im folgenden Beispiel zu sehen ist, schlägt fehl:

CREATE TABLE myNewTable AS
SELECT cast(myIntThatIsZeroOrOne as bit) AS myBit
FROM myOldtable

MySQL missbilligt Versuche, eine Integer-Spalte in ein Bit umzuwandeln, und wirft die Frage auf: Wie können wir es anweisen? Eine Ganzzahlspalte, die nur Nullen und Einsen enthält, als Bit behandeln?

Die Einschränkungen des Castings

Leider gibt es keine direkte Lösung. Die CAST- und CONVERT-Funktionen in MySQL 5.1 unterstützen die Umwandlung nur in bestimmte Datentypen, ausgenommen BIT und verwandte Ganzzahltypen.

Benutzerdefinierte Funktion zur Rettung

Trotz der Einschränkung ist es möglich, eine benutzerdefinierte zu erstellen Funktion zum Durchführen des Castings. So geht's:

DELIMITER $$

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

Visuelle Überprüfung

Um die Funktionalität der cast_to_bit-Funktion zu bestätigen, kann eine Ansicht erstellt werden:

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)

Die Untersuchung der Ansicht mit DESCRIBE zeigt dass alle Werte in Bit(1) konvertiert wurden.

Das obige ist der detaillierte Inhalt vonWie kann ich in MySQL 5.1 erfolgreich INT in BIT umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn