嘗試使用浮點值作為條件執行 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中文網其他相關文章!