ホームページ >データベース >mysql チュートリアル >MySQL クエリで Float 値が見つからないのはなぜですか?

MySQL クエリで Float 値が見つからないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-31 18:30:29720ブラウズ

 Why Doesn't My MySQL Query Find My Float Value?

MySQL FLOAT 選択の問題のトラブルシューティング

float 値に基づいて MySQL テーブルから行を取得しようとすると、次のような場合に一般的な問題が発生します。一致する値はゼロ行を返します。この問題は、テーブル内のフロートとクエリの精度が異なる場合に発生する可能性があります。

たとえば、次のクエリを考えてみましょう。

SELECT * FROM `table` WHERE `ident`='ident23' AND `price`='101.31';

テーブルに ident= の行が含まれている場合でも、 「ident23」およびprice=「101.31」の場合、精度が異なるため、クエリは一致しない可能性があります。これに対処するには、価格列を DECIMAL 型にキャストできます。

SELECT * FROM table WHERE CAST(price AS DECIMAL) = CAST(101.31 AS DECIMAL);

これにより、両方の値が同じ精度で比較され、クエリで正しい行を取得できるようになります。

あるいは、価格列を永続的に DECIMAL 型に変更することを検討できます。 DECIMAL は FLOAT と比較して精度が高いため、一般に通貨値を処理する場合に推奨されるデータ型です。

以上がMySQL クエリで Float 値が見つからないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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