2012-07-09 54 views
1

使用mysql函數可以找到浮動數字列的最小值嗎?假設我有下表:浮動數字的mysql最小值列

id |值
a | 24.88
a | 119.99

如果我嘗試:

SELECT MIN(value) FROM [table name] GROUP BY id;

MySQL的回報:
119.99

不同的浮點數測試此之後,我認爲,這種情況下因爲MySQL採用的第一個字符在每個字符串「1」和「2」中,然後根據哪個字符更小來選擇min。

我讀過這個論壇和其他人試圖找到答案,但似乎沒有人提出過這個問題。

我應該提到我也嘗試CEIL(值),但該函數也似乎有一些錯誤,我寧願保持號碼浮動數字,而不是一個整數。

謝謝大家。

回答

2

它看起來像列被存儲爲基於字符的數據類型。

  1. 更改列類型爲數值型
  2. 改變查詢並增加圍繞價值CAST:MIN(CAST(value AS DECIMAL))

列更改可能看起來像您可以通過以下兩種方式之一解決這個這樣的:

ALTER TABLE my_table MODIFY COLUMN value double; 

而且,據我所知,MySQL的嘗試將數據轉換爲您服務。請參閱the note here,其中指出「嘗試」。

+0

非常感謝ctrahey。你救了我很多時間,我是個白癡。在你的建議之前,我實際上已經對我的列類型進行了仔細檢查,看到了CHAR,並發現由於它不是VARCHAR,所以我沒事。我忘了CHAR不是數字類型。謝謝一堆。 – 2012-07-09 01:59:19

+0

樂意幫忙!歡迎來到SO。當你接受答案時,它會使整個社區(特別是你和我)受益:-) – 2012-07-09 02:15:03