ホームページ >データベース >mysql チュートリアル >Double を使用していないにもかかわらず、MySQL エラー 1292: 間違った DOUBLE 値が切り捨てられるのはなぜですか?

Double を使用していないにもかかわらず、MySQL エラー 1292: 間違った DOUBLE 値が切り捨てられるのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-25 04:43:20587ブラウズ

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

エラー コード 1292: MySQL の不正な DOUBLE 値が切り捨てられました

エラー コード 1292 に遭遇すると、特に「 double 値は使用していません。問題を詳しく調べて、考えられる解決策を探ってみましょう。

提供されたクエリでは、INSERT...SELECT ステートメントを使用して、別のテーブルの値をテーブルに設定しようとしています。重要な詳細の 1 つは、両方のテーブルのデータ型とそのサイズが一致していることを確認することです。

具体的には、エラー メッセージで、不正な DOUBLE 値が含まれていることがわかります。ただし、テーブルには二重フィールドがないと述べました。潜在的な原因は次のとおりです。

ta.phone_number

このフィールドは、両方のテーブルの double ではなく、VARCHAR または CHAR である可能性があります。長さのマッチングのための WHERE 句など、文字列内の数値を含む計算や比較を実行すると、MySQL が文字列を数値に変換しようとし、誤った DOUBLE 値が切り捨てられる場合があります。

解決するにはこの問題では、次の 2 つのオプションがあります。

  1. phone_number フィールドの両方のテーブルのデータ型が一致していることを確認します。たとえば、両方のテーブルで CHAR または VARCHAR に変換します。
  2. または、CAST() 関数を使用して、クエリ内でphone_number フィールドを数値データ型に明示的に変換します。
CAST(REPLACE(REPLACE(REPLACE(REPLACE(ta.phone_number, '-', ''), ' ', ''), ')', ''),'(','') AS UNSIGNED) = 10

phone_number を UNSIGNED 数値型に変換することで、MySQL は DOUBLE に変換せずに数値比較を適切に実行できるようになります。 value.

このデータ型の不一致に対処することで、切り捨てられた不正な DOUBLE 値エラーを回避し、データ転送を確実に成功させることができます。

以上がDouble を使用していないにもかかわらず、MySQL エラー 1292: 間違った DOUBLE 値が切り捨てられるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。