色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql 字符串 轉 數字 溢出

洪振霞2年前14瀏覽0評論

MySQL中有時候需要將字符串轉成數字類型進行計算,但是如果字符串轉成數字時,超出數字類型所能表示的范圍就會發生溢出。下面我們來看一個例子:

mysql>SELECT CAST('12345678901234567890' AS SIGNED);
+-----------------------------+
| CAST('12345678901234567890' AS SIGNED) |
+-----------------------------+
| 2147483647                  |
+-----------------------------+

上述例子中,我們將一個超出INT類型范圍的字符串轉成了SIGNED類型的數字,結果卻出現了意料之外的情況。出現這種情況的原因是MySQL在將字符串轉成數字類型時,會先將其轉成整數類型(INT類型),而整數類型的范圍是-2147483648~2147483647,因此字符串的值超出該范圍后就會產生溢出,最后得到的結果是INT類型最大值2147483647。

如果我們需要將一個較大的字符串轉成數字類型,可以使用BIGINT類型來避免溢出:

mysql>SELECT CAST('12345678901234567890' AS BIGINT);
+--------------------------------------+
| CAST('12345678901234567890' AS BIGINT) |
+--------------------------------------+
| 12345678901234567890                 |
+--------------------------------------+

通過使用BIGINT類型,我們成功將超出INT類型范圍的字符串轉成了數字類型,并避免了溢出問題。