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

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

Mary-Kate Olsen
リリース: 2024-10-31 18:30:29
オリジナル
714 人が閲覧しました

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

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