Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Berjaya Menghantar INT ke BIT dalam MySQL 5.1?

Bagaimana untuk Berjaya Menghantar INT ke BIT dalam MySQL 5.1?

Linda Hamilton
Lepaskan: 2024-10-28 20:49:30
asal
538 orang telah melayarinya

How to Successfully Cast INT to BIT in MySQL 5.1?

Menghantar INT ke BIT dalam MySQL 5.1: Tugas Yang Mustahil

Dalam peralihan daripada SQL Server ke MySQL 5.1, cabaran timbul apabila cuba mencipta jadual dengan sedikit lajur menggunakan pernyataan pilih. Pendekatan intuitif menghantar lajur integer kepada sedikit, seperti yang dilihat dalam contoh berikut, gagal:

CREATE TABLE myNewTable AS
SELECT cast(myIntThatIsZeroOrOne as bit) AS myBit
FROM myOldtable
Salin selepas log masuk

MySQL menyatakan ketidaksetujuan pada percubaan untuk menghantar ke bit, menimbulkan persoalan: Bagaimana kita boleh mengarahkannya untuk anggap lajur integer yang mengandungi hanya 0s dan 1s sebagai sedikit?

Keterbatasan Casting

Malangnya, tiada penyelesaian langsung. Fungsi CAST dan CONVERT dalam MySQL 5.1 menyokong penghantaran hanya kepada jenis data tertentu, tidak termasuk BIT dan jenis integer yang berkaitan.

Fungsi Tersuai untuk Menyelamat

Walaupun terhad, adalah mungkin untuk mencipta tersuai berfungsi untuk melakukan tuangan. Begini caranya:

DELIMITER $$

CREATE FUNCTION cast_to_bit (N INT) RETURNS bit(1)
BEGIN
    RETURN N;
END
$$
Salin selepas log masuk

Pengesahan Visual

Untuk mengesahkan kefungsian fungsi cast_to_bit, paparan boleh dibuat:

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)
Salin selepas log masuk

Memeriksa paparan dengan DESCRIBE mendedahkan bahawa semua nilai telah ditukar kepada bit(1).

Atas ialah kandungan terperinci Bagaimana untuk Berjaya Menghantar INT ke BIT dalam MySQL 5.1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan