エラー 1292: MySQL の切り捨てられた DOUBLE 値の調査
問題の説明:
が発生したとき次のerror:
#1292 - Truncated incorrect DOUBLE value:
DOUBLE データ型が原因であると推測するのは簡単です。ただし、このエラーは、DOUBLE 値に関連するフィールドまたはデータがない場合でも発生する可能性があります。
詳細な説明:
このエラーは通常、MySQL がデータを比較しようとしたときに発生します。数値と数値以外の値を組み合わせると、データ変換中に切り捨てが発生します。提供されたクエリでは、エラーの潜在的な原因は WHERE 句の比較です:
ON ac.company_code = ta.company_code
ac.company_code と ta.company_code のデータ型が異なる場合 (たとえば、一方が整数で、もう一方は文字列です)、MySQL は一方の値をもう一方の値と一致するように変換しようとするため、切り捨てが発生する可能性があります。エラー。
問題の解決:
問題を解決するには、ac.company_code と ta.company_code のデータ型に互換性があることを確認します。そうでない場合は、明示的な CAST を使用して一方の値をもう一方の値と一致するように変換するか、MySQL 構成で sql_mode = 'ALLOW_INVALID_DATES' を設定して厳密モードを無効にすることを検討してください。
例:
ON CAST(ac.company_code AS UNSIGNED) = CAST(ta.company_code AS UNSIGNED)
厳密モードを無効にすると、MySQL が互換性のない値を自動的にキャストし、警告を処理できるようになります。
切り捨てエラーの根本的な原因を理解することで、開発者はこの問題を効果的に診断して解決し、クエリをスムーズに実行できるようになります。
以上がMySQL エラー 1292: DOUBLE フィールドがなくても間違った DOUBLE 値が切り捨てられるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。