MySQL CAST 如何處理溢位?
如果在數值表示式評估期間發生溢位,MySQL CAST 可以對其進行處理。如果數值表示式的評估產生了溢位,MySQL 會顯示一條錯誤訊息。要處理這種溢位,我們可以藉助 CAST 將該數值更改為 UNSIGNED。
例如,在 BIGINT 最大值中新增 1 會導致 MySQL 產生一個溢位錯誤,如下所示:
mysql> Select 9223372036854775807 + 1; ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807+1)'
現在藉助 CAST,MySQL 可以按如下方式處理這種溢位:
mysql> Select CAST(9223372036854775807 AS UNSIGNED) +1; +------------------------------------------+ | CAST(9223372036854775807 AS UNSIGNED) +1 | +------------------------------------------+ | 9223372036854775808 | +------------------------------------------+ 1 row in set (0.07 sec)
廣告資訊