首頁 > 資料庫 > mysql教程 > 如何在 MySQL 5.1 中成功地將 INT 轉換為 BIT?

如何在 MySQL 5.1 中成功地將 INT 轉換為 BIT?

Linda Hamilton
發布: 2024-10-28 20:49:30
原創
537 人瀏覽過

How to Successfully Cast INT to BIT in MySQL 5.1?

在MySQL 5.1 中將INT 轉換為BIT:一項不可能的任務

從SQL Server 過渡到MySQL 5.1 時,嘗試使用位元建立表時會出現挑戰使用select 語句的欄位。將整數列強制轉換為位元的直覺方法(如以下範例所示)失敗了:

CREATE TABLE myNewTable AS
SELECT cast(myIntThatIsZeroOrOne as bit) AS myBit
FROM myOldtable
登入後複製

MySQL 對強制轉換為位元的嘗試表示反對,提出了一個問題:我們如何指示它將僅包含0 和1 的整數列視為一個位元?

轉換的限制

不幸的是,沒有直接的解決方案。 MySQL 5.1 中的 CAST 和 CONVERT 函數僅支援轉換為特定資料類型,不包括 BIT 和相關整數類型。

自訂函數來救援

儘管有限制,但可以建立自訂函數函數來執行鑄造。具體方法如下:

DELIMITER $$

CREATE FUNCTION cast_to_bit (N INT) RETURNS bit(1)
BEGIN
    RETURN N;
END
$$
登入後複製

視覺驗證

要確認cast_to_bit 函數的功能,可以建立一個視圖:

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)
登入後複製

使用DESCRIBE 檢查視圖會發現所有值都已轉換為位元(1)。

以上是如何在 MySQL 5.1 中成功地將 INT 轉換為 BIT?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板