Bagaimanakah MySQL mengendalikan limpahan semasa penilaian ungkapan angka?

WBOY
Lepaskan: 2023-08-24 10:05:02
ke hadapan
1323 orang telah melayarinya

MySQL 如何处理数值表达式评估期间的溢出?

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 −

My
mysql> Select 9223372036854775807 + 1;
ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807+1)'
Salin selepas log masuk

My

mysql> Select CAST(9223372036854775807 AS UNSIGNED) +1;
+------------------------------------------+
| CAST(9223372036854775807 AS UNSIGNED) +1 |
+------------------------------------------+
|                      9223372036854775808 |
+------------------------------------------+
1 row in set (0.07 sec)
Salin selepas log masuk

. limpahan dalam cara berikut:

DENGAN MENUKAR NILAI KEPADA TIDAK BERTANDA

MySQL membolehkan operasi sedemikian dengan menukar nilai kepada tidak ditandatangani seperti berikut −

mysql> Select 9223372036854775807.0 + 1;
+---------------------------+
| 9223372036854775807.0 + 1 |
+---------------------------+
|     9223372036854775808.0 |
+---------------------------+
1 row in set (0.01 sec)
Salin selepas log masuk
Dengan menggunakan aritmetik nilai tepat

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!