MySQL 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 查詢找不到我的浮點數值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!