条件として浮動小数点値を使用して SELECT クエリを実行しようとすると、予期しない動作が発生することがよくあります。次の問題は、この課題の例です。
<code class="sql">SELECT * FROM `table` WHERE `ident`='ident23' AND `price`='101.31';</code>
このクエリでは、データベース内の価格列の値 101.31 が返されますが、行はゼロになります。価格条件を削除すると、予期した行が返されます。
この問題に対処するには、次の解決策を検討してください。
浮動小数点値を次のようにキャストする比較する前に DECIMAL 型を使用すると、適切な精度が確保されます:
<code class="sql">SELECT * FROM table WHERE CAST(price AS DECIMAL) = CAST(101.31 AS DECIMAL);</code>
価格列を DECIMAL 型に変更することを検討してください。これにより、通貨値の精度が向上します:
ALTER TABLE `table` MODIFY COLUMN `price` DECIMAL;
以上が以下に、提供されたテキストに基づいた質問ベースのタイトルをいくつか示します。それぞれが問題のさまざまな側面に焦点を当てています。 オプション 1 (問題に焦点を当てる): * MySQL SELECT クエリが応答を返さないのはなぜですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。