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