這裏是我的MySQL表SELECT MAX MySQL查詢 - 反常的結果
當我執行以下查詢:SELECT MAX(Animal_ID)FROM info_table
我得到 「9」
不是10嗎?
如何解決該錯誤?
謝謝!
這裏是我的MySQL表SELECT MAX MySQL查詢 - 反常的結果
當我執行以下查詢:SELECT MAX(Animal_ID)FROM info_table
我得到 「9」
不是10嗎?
如何解決該錯誤?
謝謝!
我的猜測是animal_id
被存儲爲字符字段而不是數字字段。當你在MySQL中添加兩個值加在一起,一個是字符串,那麼初始數字字符(如果有的話)被轉換爲數字
select max(animal_id + 0)
from info_table
:如果你想在數字最大,試試這個。
根據其他欄中的樣本數據判斷,您已將所有類型爲VarChar
的列(即文本)作爲列。你所看到的「異常結果」是這是一個壞主意的諸多原因之一。
對一系列字符串進行排序通常按照「字母」或「詞法」順序進行 - 「b」在「z」之前,但不在「aaa」之前。完全由數字組成的字符串可能看起來像數字,但它們將像其他字符串一樣排序 - 所以「1」在「2」之前,但以「1」開頭的任何字符串如「1a」,「10」,「 「100」。這通常不是你想要的。
與其解決這個問題以及您遇到的其他問題,例如,日期字段,請始終在每列上設置正確的類型。
啊是的。我改變了類型爲INT和它的工作。謝謝噸:D – Anant 2013-04-27 16:53:53