2013-04-27 109 views

回答

1

我的猜測是animal_id被存儲爲字符字段而不是數字字段。當你在MySQL中添加兩個值加在一起,一個是字符串,那麼初始數字字符(如果有的話)被轉換爲數字

select max(animal_id + 0) 
from info_table 

:如果你想在數字最大,試試這個。

+0

啊是的。我改變了類型爲INT和它的工作。謝謝噸:D – Anant 2013-04-27 16:53:53

0

根據其他欄中的樣本數據判斷,您已將所有類型爲VarChar的列(即文本)作爲列。你所看到的「異常結果」是這是一個壞主意的諸多原因之一。

對一系列字符串進行排序通常按照「字母」或「詞法」順序進行 - 「b」在「z」之前,但不在「aaa」之前。完全由數字組成的字符串可能看起來像數字,但它們將像其他字符串一樣排序 - 所以「1」在「2」之前,但以「1」開頭的任何字符串如「1a」,「10」,「 「100」。這通常不是你想要的。

與其解決這個問題以及您遇到的其他問題,例如,日期字段,請始終在每列上設置正確的類型。