2016年8月2日 星期二

解決 MySQL CAST INT Return BigINT 的問題

偶然間發現 MySQL 使用 CAST Function 做型別轉換時,若指定輸出為 Integer 則輸出會固定為 BIGINT,如下圖
















神了一下發現是 MySQL 的 Bug, http://bugs.mysql.com/bug.php?id=64084
同時也有高手提供了解決辦法,就是自建一個 Function 做轉換








這個 Function 也沒做什麼事,只是把傳進去的 BIGINT 以 INT32 長度回傳而已
所以結果就會變這樣













會發現這個問題是因為原本的資料庫是 MSSQL,在轉換成 MySQL 後將 Data 轉換到 Model 時發生型別錯誤,才發現原來經過 CAST 的 Number 會輸出為 BIGINT