Seperti yang kita tahu bahawa MySQL akan menghasilkan ralat jika limpahan berlaku semasa penilaian ungkapan berangka Contohnya, BIGNT yang ditandatangani terbesar ialah 9223372036854775807, jadi ungkapan berikut akan menghasilkan ralat −
Mymysql> Select 9223372036854775807 + 1; ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807+1)'
My
mysql> Select CAST(9223372036854775807 AS UNSIGNED) +1; +------------------------------------------+ | CAST(9223372036854775807 AS UNSIGNED) +1 | +------------------------------------------+ | 9223372036854775808 | +------------------------------------------+ 1 row in set (0.07 sec)
mysql> Select 9223372036854775807.0 + 1; +---------------------------+ | 9223372036854775807.0 + 1 | +---------------------------+ | 9223372036854775808.0 | +---------------------------+ 1 row in set (0.01 sec)
QL
boleh menggunakan aritmetik tepat kepada MySQL memproses Mod ungkapan di atas. Ini kerana limpahan berlaku bergantung pada julat operan. Sebagai contoh, pengiraan di atas boleh dilakukan dengan menggunakan nilai PERPULUHAN seperti yang ditunjukkan di bawah −rrreee🎜Atas ialah kandungan terperinci Bagaimanakah MySQL mengendalikan limpahan semasa penilaian ungkapan angka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!