Rumah > pangkalan data > tutorial mysql > Mengapa Saya Mendapat Ralat MySQL 1292: Nilai DOUBLE Salah Dipenggal Walaupun Tanpa Medan DOUBLE?

Mengapa Saya Mendapat Ralat MySQL 1292: Nilai DOUBLE Salah Dipenggal Walaupun Tanpa Medan DOUBLE?

Barbara Streisand
Lepaskan: 2024-12-02 07:06:17
asal
679 orang telah melayarinya

Why Am I Getting MySQL Error 1292: Truncated Incorrect DOUBLE Value Even Without DOUBLE Fields?

Ralat 1292: Menyiasat Nilai DOUBLE Dipenggal dalam MySQL

Penerangan Masalah:

Apabila menghadapi ralat berikut:

#1292 - Truncated incorrect DOUBLE value:
Salin selepas log masuk

ialah mudah untuk mengandaikan bahawa jenis data DOUBLE adalah puncanya. Walau bagaimanapun, ralat ini boleh timbul walaupun tiada medan atau data yang berkaitan dengan nilai DOUBLE.

Penjelasan Terperinci:

Ralat ini biasanya berlaku apabila MySQL cuba membandingkan nilai berangka dengan nilai bukan angka, yang membawa kepada pemangkasan semasa penukaran data. Dalam pertanyaan yang diberikan, kemungkinan punca ralat ialah perbandingan dalam klausa WHERE:

ON ac.company_code = ta.company_code
Salin selepas log masuk

Jika jenis data ac.company_code dan ta.company_code berbeza (cth., satu ialah integer manakala yang lain ialah rentetan), MySQL mungkin cuba menukar salah satu nilai agar sepadan dengan yang lain, mengakibatkan pemotongan ralat.

Menyelesaikan Isu:

Untuk menyelesaikan isu, sahkan bahawa jenis data ac.company_code dan ta.company_code adalah serasi. Jika tidak, pertimbangkan untuk menggunakan CAST eksplisit untuk menukar salah satu nilai agar sepadan dengan yang lain atau lumpuhkan mod ketat dengan menetapkan sql_mode = 'ALLOW_INVALID_DATES' dalam konfigurasi MySQL.

Contoh:

ON CAST(ac.company_code AS UNSIGNED) = CAST(ta.company_code AS UNSIGNED)
Salin selepas log masuk

Melumpuhkan mod ketat akan membolehkan MySQL menghantar nilai yang tidak serasi secara automatik, menganggap amaran sebagai mesej maklumat dan bukannya ralat.

Dengan memahami punca ralat pemangkasan, pembangun boleh mendiagnosis dan menyelesaikan isu ini dengan berkesan, memastikan pelaksanaan pertanyaan mereka lancar.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat MySQL 1292: Nilai DOUBLE Salah Dipenggal Walaupun Tanpa Medan DOUBLE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan