ホームページ > データベース > mysql チュートリアル > MySQL エラー 1292: DOUBLE フィールドがなくても間違った DOUBLE 値が切り捨てられるのはなぜですか?

MySQL エラー 1292: DOUBLE フィールドがなくても間違った DOUBLE 値が切り捨てられるのはなぜですか?

Barbara Streisand
リリース: 2024-12-02 07:06:17
オリジナル
677 人が閲覧しました

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

エラー 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート