問題mysql
有以下查詢:sql
SELECT * FROM <table-name> WHERE price > 32.99;
結果居然包含了 32.99 的數據行。函數
緣由.net
price 的類型是 double,會存在精度丟失問題,做爲條件查詢或者 sum 等聚合函數時結果會不許確code
解決blog
將 double 類型轉化爲 decimal 查詢:ci
SELECT * FROM <table-name> WHERE CAST(price AS DECIMAL(7, 2)) > 32.99;
參考get
PS:我的博客連接 - MySQL double 類型查詢不許確的問題博客